diff --git a/README.highlight.js.txt b/README.highlight.js.txt index 8506468d5..13691586b 100644 --- a/README.highlight.js.txt +++ b/README.highlight.js.txt @@ -1,6 +1,5 @@ Подсветка кода от https://highlightjs.org. -Версия Highlight.js v11.11.1 (git: 85b20421a2). - +Версия Highlight.js 11.12.0 (git: e74fafc059). Сборка через build-hljs. \ No newline at end of file diff --git a/src/main/webapp/js/highlight.min.js b/src/main/webapp/js/highlight.min.js index 416002597..22796425d 100644 --- a/src/main/webapp/js/highlight.min.js +++ b/src/main/webapp/js/highlight.min.js @@ -1,28 +1,24 @@ /*! - Highlight.js v11.11.1 (git: 85b20421a2) - (c) 2006-2025 Josh Goebel and other contributors + Highlight.js v11.12.0 (git: e74fafc059) + (c) 2006-2026 Josh Goebel and other contributors License: BSD-3-Clause */ -var hljs=function(){"use strict";function e(n){ -return n instanceof Map?n.clear=n.delete=n.set=()=>{ -throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{ -throw Error("set is read-only") -}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{ -const a=n[t],s=typeof a;"object"!==s&&"function"!==s||Object.isFrozen(a)||e(a) -})),n}class n{constructor(e){ +var hljs=function(){"use strict";class e{constructor(e){ void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} -ignoreMatch(){this.isMatchIgnored=!0}}function t(e){ +ignoreMatch(){this.isMatchIgnored=!0}}function n(e){ return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") -}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n] -;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const s=e=>!!e.scope -;class r{constructor(e,n){ +}function t(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n] +;return n.forEach(e=>{for(const n in e)t[n]=e[n]}),t}function a(e){ +if(null===e||"object"!=typeof e||Object.isFrozen(e))return e;Object.freeze(e) +;for(const n of Object.getOwnPropertyNames(e))a(e[n]);return e} +const s=e=>!!e.scope;class r{constructor(e,n){ this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ -this.buffer+=t(e)}openNode(e){if(!s(e))return;const n=((e,{prefix:n})=>{ +this.buffer+=n(e)}openNode(e){if(!s(e))return;const n=((e,{prefix:n})=>{ if(e.startsWith("language:"))return e.replace("language:","language-") ;if(e.includes(".")){const t=e.split(".") -;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ") -}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)} -closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +;return[`${n}${t.shift()}`,...t.map((e,n)=>`${e}${"_".repeat(n+1)}`)].join(" ")} +return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}closeNode(e){ +s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ this.buffer+=``}}const i=(e={})=>{const n={children:[]} ;return Object.assign(n,e),n};class o{constructor(){ this.rootNode=i(),this.stack=[this.rootNode]}get top(){ @@ -33,9 +29,9 @@ if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){ return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n), -n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){ -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ -o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e} +n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{ +o._collapse(e)}))}}class c extends o{constructor(e){super(),this.options=e} addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ this.closeNode()}__addSublanguage(e,n){const t=e.root ;n&&(t.scope="language:"+n),this.add(t)}toHTML(){ @@ -44,33 +40,33 @@ return this.closeAllNodes(),!0}}function l(e){ return RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function d(e){ return e?"string"==typeof e?e:e.source:null}function p(e){return b("(?=",e,")")} function m(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")} -function b(...e){return e.map((e=>d(e))).join("")}function g(...e){const n=(e=>{ +function b(...e){return e.map(e=>d(e)).join("")}function g(...e){const n=(e=>{ const n=e[e.length-1] ;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} -})(e);return"("+(n.capture?"":"?:")+e.map((e=>d(e))).join("|")+")"} -function _(e){return RegExp(e.toString()+"|").exec("").length-1} -const f=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ -;function v(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t +})(e);return"("+(n.capture?"":"?:")+e.map(e=>d(e)).join("|")+")"}function _(e){ +return RegExp(e.toString()+"|").exec("").length-1} +const f=RegExp(g(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./)) +;function v(e,{joinWith:n}){let t=0;return e.map(e=>{t+=1;const n=t ;let a=d(e),s="";for(;a.length>0;){const e=f.exec(a);if(!e){s+=a;break} s+=a.substring(0,e.index), a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+n):(s+=e[0], -"("===e[0]&&t++)}return s})).map((e=>`(${e})`)).join(n)} +("("===e[0]||/^\(\?[<']/.test(e[0]))&&t++)}return s}).map(e=>`(${e})`).join(n)} const h="[a-zA-Z]\\w*",w="[a-zA-Z_]\\w*",E="\\b\\d+(\\.\\d+)?",y="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",x="\\b(0b[01]+)",N={ begin:"\\\\[\\s\\S]",relevance:0},k={scope:"string",begin:"'",end:"'", illegal:"\\n",contains:[N]},O={scope:"string",begin:'"',end:'"',illegal:"\\n", -contains:[N]},M=(e,n,t={})=>{const s=a({scope:"comment",begin:e,end:n, -contains:[]},t);s.contains.push({scope:"doctag", +contains:[N]},M=(e,n,a={})=>{const s=t({scope:"comment",begin:e,end:n, +contains:[]},a);s.contains.push({scope:"doctag", begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) ;const r=g("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) ;return s.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s -},A=M("//","$"),S=M("/\\*","\\*/"),C=M("#","$");var q=Object.freeze({ +},A=M("//","$"),C=M("/\\*","\\*/"),S=M("#","$");var T=Object.freeze({ __proto__:null,APOS_STRING_MODE:k,BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:{ scope:"number",begin:x,relevance:0},BINARY_NUMBER_RE:x,COMMENT:M, -C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:A,C_NUMBER_MODE:{scope:"number", +C_BLOCK_COMMENT_MODE:C,C_LINE_COMMENT_MODE:A,C_NUMBER_MODE:{scope:"number", begin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{ "on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{ -n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:C,IDENT_RE:h, +n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:S,IDENT_RE:h, MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+w,relevance:0}, NUMBER_MODE:{scope:"number",begin:E,relevance:0},NUMBER_RE:E, PHRASAL_WORDS_MODE:{ @@ -79,14 +75,14 @@ begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simp end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]}, RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", SHEBANG:(e={})=>{const n=/^#![ ]*\// -;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n, +;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),t({scope:"meta",begin:n, end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)}, TITLE_MODE:{scope:"title",begin:h,relevance:0},UNDERSCORE_IDENT_RE:w, -UNDERSCORE_TITLE_MODE:{scope:"title",begin:w,relevance:0}});function T(e,n){ +UNDERSCORE_TITLE_MODE:{scope:"title",begin:w,relevance:0}});function q(e,n){ "."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){ void 0!==e.className&&(e.scope=e.className,delete e.className)}function I(e,n){ n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", -e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +e.__beforeBegin=q,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, void 0===e.relevance&&(e.relevance=0))}function D(e,n){ Array.isArray(e.illegal)&&(e.illegal=g(...e.illegal))}function L(e,n){ if(e.match){ @@ -94,19 +90,19 @@ if(e.begin||e.end)throw Error("begin & end are not supported with match") ;e.begin=e.match,delete e.match}}function z(e,n){ void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return ;if(e.starts)throw Error("beforeMatch cannot be used with starts") -;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n] -})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,p(t.begin)),e.starts={ +;const t=Object.assign({},e);Object.keys(e).forEach(n=>{delete e[n] +}),e.keywords=t.keywords,e.begin=b(t.beforeMatch,p(t.begin)),e.starts={ relevance:0,contains:[Object.assign(t,{endsParent:!0})] },e.relevance=0,delete t.beforeMatch },B=["of","and","for","in","not","or","if","then","parent","list","value"] ;function P(e,n,t="keyword"){const a=Object.create(null) -;return"string"==typeof e?s(t,e.split(" ")):Array.isArray(e)?s(t,e):Object.keys(e).forEach((t=>{ -Object.assign(a,P(e[t],n,t))})),a;function s(e,t){ -n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|") -;a[t[0]]=[e,U(t[0],t[1])]}))}}function U(e,n){ -return n?Number(n):(e=>B.includes(e.toLowerCase()))(e)?0:1}const F={},j=e=>{ +;return"string"==typeof e?s(t,e.split(" ")):Array.isArray(e)?s(t,e):Object.keys(e).forEach(t=>{ +Object.assign(a,P(e[t],n,t))}),a;function s(e,t){ +n&&(t=t.map(e=>e.toLowerCase())),t.forEach(n=>{const t=n.split("|") +;a[t[0]]=[e,F(t[0],t[1])]})}}function F(e,n){ +return n?Number(n):(e=>B.includes(e.toLowerCase()))(e)?0:1}const U={},j=e=>{ console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},K=(e,n)=>{ -F[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),F[`${e}/${n}`]=!0) +U[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),U[`${e}/${n}`]=!0) },Z=Error();function G(e,n,{key:t}){let a=0;const s=e[t],r={},i={} ;for(let e=1;e<=n.length;e++)i[e+a]=s[e],r[e+a]=!0,a+=_(n[e-1]) ;e[t]=i,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{ @@ -125,20 +121,20 @@ Z Z;G(e,e.end,{key:"endScope"}),e.end=v(e.end,{joinWith:""})}})(e)}function Q(e){ function n(n,t){ return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":"")) -}class t{constructor(){ +}class a{constructor(){ this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} addRule(e,n){ n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]), this.matchAt+=_(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(v(e,{joinWith:"|" +;const e=this.regexes.map(e=>e[1]);this.matcherRe=n(v(e,{joinWith:"|" }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex ;const n=this.matcherRe.exec(e);if(!n)return null -;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t] +;const t=n.findIndex((e,n)=>n>0&&void 0!==e),a=this.matchIndexes[t] ;return n.splice(0,t),Object.assign(n,a)}}class s{constructor(){ this.rules=[],this.multiRegexes=[], this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ -if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t -;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))), +if(this.multiRegexes[e])return this.multiRegexes[e];const n=new a +;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)), n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){ return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){ this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){ @@ -150,10 +146,10 @@ return t&&(this.regexIndex+=t.position+1, this.regexIndex===this.count&&this.considerAll()),t}} if(e.compilerExtensions||(e.compilerExtensions=[]), e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") -;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,i){const o=r +;return e.classNameAliases=t(e.classNameAliases||{}),function a(r,i){const o=r ;if(r.isCompiled)return o -;[R,L,W,$].forEach((e=>e(r,i))),e.compilerExtensions.forEach((e=>e(r,i))), -r.__beforeBegin=null,[I,D,z].forEach((e=>e(r,i))),r.isCompiled=!0;let c=null +;[R,L,W,$].forEach(e=>e(r,i)),e.compilerExtensions.forEach(e=>e(r,i)), +r.__beforeBegin=null,[I,D,z].forEach(e=>e(r,i)),r.isCompiled=!0;let c=null ;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), c=r.keywords.$pattern, delete r.keywords.$pattern),c=c||/\w+/,r.keywords&&(r.keywords=P(r.keywords,e.case_insensitive)), @@ -162,18 +158,18 @@ i&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r. r.end&&(o.endRe=n(o.end)), o.terminatorEnd=d(o.end)||"",r.endsWithParent&&i.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+i.terminatorEnd)), r.illegal&&(o.illegalRe=n(r.illegal)), -r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{ -variants:null},n)))),e.cachedVariants?e.cachedVariants:V(e)?a(e,{ -starts:e.starts?a(e.starts):null -}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o) -})),r.starts&&t(r.starts,i),o.matcher=(e=>{const n=new s -;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin" -}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end" +r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map(e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(n=>t(e,{ +variants:null},n))),e.cachedVariants?e.cachedVariants:V(e)?t(e,{ +starts:e.starts?t(e.starts):null +}):Object.isFrozen(e)?t(e):e))("self"===e?r:e))),r.contains.forEach(e=>{a(e,o) +}),r.starts&&a(r.starts,i),o.matcher=(e=>{const n=new s +;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin" +})),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end" }),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function V(e){ return!!e&&(e.endsWithParent||V(e.starts))}class X extends Error{ constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}} -const Y=t,J=a,ee=Symbol("nomatch"),ne=t=>{ -const a=Object.create(null),s=Object.create(null),r=[];let i=!0 +const Y=n,J=t,ee=Symbol("nomatch"),ne=n=>{ +const t=Object.create(null),s=Object.create(null),r=[];let i=!0 ;const o="Could not find the language '{}', did you forget to load/include a language module?",l={ disableAutodetect:!0,name:"Plain text",contains:[]};let d={ ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, @@ -185,83 +181,83 @@ t=n.ignoreIllegals,s=n.language):(K("10.7.0","highlight(lang, code, ...args) has K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), s=e,a=n),void 0===t&&(t=!0);const r={code:a,language:s};O("before:highlight",r) ;const i=r.result?r.result:v(r.language,r.code,t) -;return i.code=r.code,O("after:highlight",i),i}function v(e,t,s,r){ -const c=Object.create(null);function l(){if(!O.keywords)return void A.addText(S) -;let e=0;O.keywordPatternRe.lastIndex=0;let n=O.keywordPatternRe.exec(S),t="" -;for(;n;){t+=S.substring(e,n.index) -;const s=y.case_insensitive?n[0].toLowerCase():n[0],r=(a=s,O.keywords[a]);if(r){ -const[e,a]=r -;if(A.addText(t),t="",c[s]=(c[s]||0)+1,c[s]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{ -const t=y.classNameAliases[e]||e;m(n[0],t)}}else t+=n[0] -;e=O.keywordPatternRe.lastIndex,n=O.keywordPatternRe.exec(S)}var a -;t+=S.substring(e),A.addText(t)}function p(){null!=O.subLanguage?(()=>{ -if(""===S)return;let e=null;if("string"==typeof O.subLanguage){ -if(!a[O.subLanguage])return void A.addText(S) -;e=v(O.subLanguage,S,!0,M[O.subLanguage]),M[O.subLanguage]=e._top -}else e=h(S,O.subLanguage.length?O.subLanguage:null) -;O.relevance>0&&(C+=e.relevance),A.__addSublanguage(e._emitter,e.language) -})():l(),S=""}function m(e,n){ -""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function u(e,n){let t=1 +;return i.code=r.code,O("after:highlight",i),i}function v(n,a,s,r){ +const c=Object.create(null);function l(e,n){return e.keywords[n]}function p(){ +if(!M.keywords)return void C.addText(S);let e=0;M.keywordPatternRe.lastIndex=0 +;let n=M.keywordPatternRe.exec(S),t="";for(;n;){t+=S.substring(e,n.index) +;const a=N.case_insensitive?n[0].toLowerCase():n[0],s=l(M,a);if(s){const[e,r]=s +;if(C.addText(t), +t="",c[a]=(c[a]||0)+1,c[a]<=7&&(T+=r),e.startsWith("_"))t+=n[0];else{ +const t=N.classNameAliases[e]||e;u(n[0],t)}}else t+=n[0] +;e=M.keywordPatternRe.lastIndex,n=M.keywordPatternRe.exec(S)} +t+=S.substring(e),C.addText(t)}function m(){null!=M.subLanguage?(()=>{ +if(""===S)return;let e=null;if("string"==typeof M.subLanguage){ +if(!t[M.subLanguage])return void C.addText(S) +;e=v(M.subLanguage,S,!0,A[M.subLanguage]),A[M.subLanguage]=e._top +}else e=h(S,M.subLanguage.length?M.subLanguage:null) +;M.relevance>0&&(T+=e.relevance),C.__addSublanguage(e._emitter,e.language) +})():p(),S=""}function u(e,n){ +""!==e&&(C.startScope(n),C.addText(e),C.endScope())}function b(e,n){let t=1 ;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue} -const a=y.classNameAliases[e[t]]||e[t],s=n[t];a?m(s,a):(S=s,l(),S=""),t++}} -function b(e,n){ -return e.scope&&"string"==typeof e.scope&&A.openNode(y.classNameAliases[e.scope]||e.scope), -e.beginScope&&(e.beginScope._wrap?(m(S,y.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), -S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),O=Object.create(e,{parent:{ -value:O}}),O}function g(e,t,a){let s=((e,n)=>{const t=e&&e.exec(n) -;return t&&0===t.index})(e.endRe,a);if(s){if(e["on:end"]){const a=new n(e) -;e["on:end"](t,a),a.isMatchIgnored&&(s=!1)}if(s){ -for(;e.endsParent&&e.parent;)e=e.parent;return e}} -if(e.endsWithParent)return g(e.parent,t,a)}function _(e){ -return 0===O.matcher.regexIndex?(S+=e[0],1):(R=!0,0)}function f(e){ -const n=e[0],a=t.substring(e.index),s=g(O,e,a);if(!s)return ee;const r=O -;O.endScope&&O.endScope._wrap?(p(), -m(n,O.endScope._wrap)):O.endScope&&O.endScope._multi?(p(), -u(O.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n), -p(),r.excludeEnd&&(S=n));do{ -O.scope&&A.closeNode(),O.skip||O.subLanguage||(C+=O.relevance),O=O.parent -}while(O!==s.parent);return s.starts&&b(s.starts,e),r.returnEnd?0:n.length} -let w={};function E(a,r){const o=r&&r[0];if(S+=a,null==o)return p(),0 -;if("begin"===w.type&&"end"===r.type&&w.index===r.index&&""===o){ -if(S+=t.slice(r.index,r.index+1),!i){const n=Error(`0 width match regex (${e})`) -;throw n.languageName=e,n.badRule=w.rule,n}return 1} -if(w=r,"begin"===r.type)return(e=>{ -const t=e[0],a=e.rule,s=new n(a),r=[a.__beforeBegin,a["on:begin"]] -;for(const n of r)if(n&&(n(e,s),s.isMatchIgnored))return _(t) +const a=N.classNameAliases[e[t]]||e[t],s=n[t];a?u(s,a):(S=s,p(),S=""),t++}} +function g(e,n){ +return e.scope&&"string"==typeof e.scope&&C.openNode(N.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(u(S,N.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +S=""):e.beginScope._multi&&(b(e.beginScope,n),S="")),M=Object.create(e,{parent:{ +value:M}}),M}function _(n,t,a){let s=((e,n)=>{const t=e&&e.exec(n) +;return t&&0===t.index})(n.endRe,a);if(s){if(n["on:end"]){const a=new e(n) +;n["on:end"](t,a),a.isMatchIgnored&&(s=!1)}if(s){ +for(;n.endsParent&&n.parent;)n=n.parent;return n}} +if(n.endsWithParent)return _(n.parent,t,a)}function f(e){ +return 0===M.matcher.regexIndex?(S+=e[0],1):(I=!0,0)}function w(e){ +const n=e[0],t=a.substring(e.index),s=_(M,e,t);if(!s)return ee;const r=M +;M.endScope&&M.endScope._wrap?(m(), +u(n,M.endScope._wrap)):M.endScope&&M.endScope._multi?(m(), +b(M.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n), +m(),r.excludeEnd&&(S=n));do{ +M.scope&&C.closeNode(),M.skip||M.subLanguage||(T+=M.relevance),M=M.parent +}while(M!==s.parent);return s.starts&&g(s.starts,e),r.returnEnd?0:n.length} +let E={};function y(t,r){const o=r&&r[0];if(S+=t,null==o)return m(),0 +;if("begin"===E.type&&"end"===r.type&&E.index===r.index&&""===o){ +if(S+=a.slice(r.index,r.index+1),!i){const e=Error(`0 width match regex (${n})`) +;throw e.languageName=n,e.badRule=E.rule,e}return 1} +if(E=r,"begin"===r.type)return(n=>{ +const t=n[0],a=n.rule,s=new e(a),r=[a.__beforeBegin,a["on:begin"]] +;for(const e of r)if(e&&(e(n,s),s.isMatchIgnored))return f(t) ;return a.skip?S+=t:(a.excludeBegin&&(S+=t), -p(),a.returnBegin||a.excludeBegin||(S=t)),b(a,e),a.returnBegin?0:t.length})(r) +m(),a.returnBegin||a.excludeBegin||(S=t)),g(a,n),a.returnBegin?0:t.length})(r) ;if("illegal"===r.type&&!s){ -const e=Error('Illegal lexeme "'+o+'" for mode "'+(O.scope||"")+'"') -;throw e.mode=O,e}if("end"===r.type){const e=f(r);if(e!==ee)return e} -if("illegal"===r.type&&""===o)return r.index===t.length||(S+="\n"),1 -;if(T>1e5&&T>3*r.index)throw Error("potential infinite loop, way more iterations than matches") -;return S+=o,o.length}const y=x(e) -;if(!y)throw j(o.replace("{}",e)),Error('Unknown language: "'+e+'"') -;const N=Q(y);let k="",O=r||N;const M={},A=new d.__emitter(d);(()=>{const e=[] -;for(let n=O;n!==y;n=n.parent)n.scope&&e.unshift(n.scope) -;e.forEach((e=>A.openNode(e)))})();let S="",C=0,q=0,T=0,R=!1;try{ -if(y.__emitTokens)y.__emitTokens(t,A);else{for(O.matcher.considerAll();;){ -T++,R?R=!1:O.matcher.considerAll(),O.matcher.lastIndex=q -;const e=O.matcher.exec(t);if(!e)break;const n=E(t.substring(q,e.index),e) -;q=e.index+n}E(t.substring(q))}return A.finalize(),k=A.toHTML(),{language:e, -value:k,relevance:C,illegal:!1,_emitter:A,_top:O}}catch(n){ -if(n.message&&n.message.includes("Illegal"))return{language:e,value:Y(t), -illegal:!0,relevance:0,_illegalBy:{message:n.message,index:q, -context:t.slice(q-100,q+100),mode:n.mode,resultSoFar:k},_emitter:A};if(i)return{ -language:e,value:Y(t),illegal:!1,relevance:0,errorRaised:n,_emitter:A,_top:O} -;throw n}}function h(e,n){n=n||d.languages||Object.keys(a);const t=(e=>{ +const e=Error('Illegal lexeme "'+o+'" for mode "'+(M.scope||"")+'"') +;throw e.mode=M,e}if("end"===r.type){const e=w(r);if(e!==ee)return e} +if("illegal"===r.type&&""===o)return r.index===a.length||(S+="\n"),1 +;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches") +;return S+=o,o.length}const N=x(n) +;if(!N)throw j(o.replace("{}",n)),Error('Unknown language: "'+n+'"') +;const k=Q(N);let O="",M=r||k;const A={},C=new d.__emitter(d);(()=>{const e=[] +;for(let n=M;n!==N;n=n.parent)n.scope&&e.unshift(n.scope) +;e.forEach(e=>C.openNode(e))})();let S="",T=0,q=0,R=0,I=!1;try{ +if(N.__emitTokens)N.__emitTokens(a,C);else{for(M.matcher.considerAll();;){ +R++,I?I=!1:M.matcher.considerAll(),M.matcher.lastIndex=q +;const e=M.matcher.exec(a);if(!e)break;const n=y(a.substring(q,e.index),e) +;q=e.index+n}y(a.substring(q))}return C.finalize(),O=C.toHTML(),{language:n, +value:O,relevance:T,illegal:!1,_emitter:C,_top:M}}catch(e){ +if(e.message&&e.message.includes("Illegal"))return{language:n,value:Y(a), +illegal:!0,relevance:0,_illegalBy:{message:e.message,index:q, +context:a.slice(q-100,q+100),mode:e.mode,resultSoFar:O},_emitter:C};if(i)return{ +language:n,value:Y(a),illegal:!1,relevance:0,errorRaised:e,_emitter:C,_top:M} +;throw e}}function h(e,n){n=n||d.languages||Object.keys(t);const a=(e=>{ const n={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new d.__emitter(d)} -;return n._emitter.addText(e),n})(e),s=n.filter(x).filter(k).map((n=>v(n,e,!1))) -;s.unshift(t);const r=s.sort(((e,n)=>{ +;return n._emitter.addText(e),n})(e),s=n.filter(x).filter(k).map(n=>v(n,e,!1)) +;s.unshift(a);const r=s.sort((e,n)=>{ if(e.relevance!==n.relevance)return n.relevance-e.relevance ;if(e.language&&n.language){if(x(e.language).supersetOf===n.language)return 1 -;if(x(n.language).supersetOf===e.language)return-1}return 0})),[i,o]=r,c=i +;if(x(n.language).supersetOf===e.language)return-1}return 0}),[i,o]=r,c=i ;return c.secondBest=o,c}function w(e){let n=null;const t=(e=>{ let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"" ;const t=d.languageDetectRe.exec(n);if(t){const n=x(t[1]) ;return n||(H(o.replace("{}",t[1])), H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"} -return n.split(/\s+/).find((e=>_(e)||x(e)))})(e);if(_(t))return +return n.split(/\s+/).find(e=>_(e)||x(e))})(e);if(_(t))return ;if(O("before:highlightElement",{el:e,language:t }),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) ;if(e.children.length>0&&(d.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), @@ -275,48 +271,50 @@ console.warn(e)),d.throwUnescapedHTML))throw new X("One of your code blocks incl relevance:r.relevance},r.secondBest&&(e.secondBest={ language:r.secondBest.language,relevance:r.secondBest.relevance }),O("after:highlightElement",{el:e,result:r,text:a})}let E=!1;function y(){ -if("loading"===document.readyState)return E||window.addEventListener("DOMContentLoaded",(()=>{ -y()}),!1),void(E=!0);document.querySelectorAll(d.cssSelector).forEach(w)} -function x(e){return e=(e||"").toLowerCase(),a[e]||a[s[e]]} -function N(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ -s[e.toLowerCase()]=n}))}function k(e){const n=x(e) -;return n&&!n.disableAutodetect}function O(e,n){const t=e;r.forEach((e=>{ -e[t]&&e[t](n)}))}Object.assign(t,{highlight:f,highlightAuto:h,highlightAll:y, -highlightElement:w, +if("loading"===document.readyState)return E||window.addEventListener("DOMContentLoaded",()=>{ +y()},!1),void(E=!0);document.querySelectorAll(d.cssSelector).forEach(w)} +function x(e){return e=(e||"").toLowerCase(),t[e]||t[s[e]]} +function N(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{ +s[e.toLowerCase()]=n})}function k(e){const n=x(e);return n&&!n.disableAutodetect +}function O(e,n){const t=e;r.forEach(e=>{e[t]&&e[t](n)})}Object.assign(n,{ +highlight:f,highlightAuto:h,highlightAll:y,highlightElement:w, highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"), K("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{d=J(d,e)}, initHighlighting:()=>{ y(),K("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, initHighlightingOnLoad:()=>{ y(),K("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") -},registerLanguage:(e,n)=>{let s=null;try{s=n(t)}catch(n){ +},registerLanguage:(e,a)=>{let s=null;try{s=a(n)}catch(n){ if(j("Language definition for '{}' could not be registered.".replace("{}",e)), !i)throw n;j(n),s=l} -s.name||(s.name=e),a[e]=s,s.rawDefinition=n.bind(null,t),s.aliases&&N(s.aliases,{ -languageName:e})},unregisterLanguage:e=>{delete a[e] +s.name||(s.name=e),t[e]=s,s.rawDefinition=a.bind(null,n),s.aliases&&N(s.aliases,{ +languageName:e})},unregisterLanguage:e=>{delete t[e] ;for(const n of Object.keys(s))s[n]===e&&delete s[n]}, -listLanguages:()=>Object.keys(a),getLanguage:x,registerAliases:N, +listLanguages:()=>Object.keys(t),getLanguage:x,registerAliases:N, autoDetection:k,inherit:J,addPlugin:e=>{(e=>{ e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{ e["before:highlightBlock"](Object.assign({block:n.el},n)) }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)}, -removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{ -i=!1},t.safeMode=()=>{i=!0},t.versionString="11.11.1",t.regex={concat:b, +removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),n.debugMode=()=>{ +i=!1},n.safeMode=()=>{i=!0},n.versionString="11.12.0",n.regex={concat:b, lookahead:p,either:g,optional:u,anyNumberOfTimes:m} -;for(const n in q)"object"==typeof q[n]&&e(q[n]);return Object.assign(t,q),t +;for(const e in T)"object"==typeof T[e]&&a(T[e]);return Object.assign(n,T),n },te=ne({});te.newInstance=()=>ne({});var ae=te -;const se="[A-Za-z$_][0-9A-Za-z$_]*",re=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],ie=["true","false","null","undefined","NaN","Infinity"],oe=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ce=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],le=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],de=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],pe=[].concat(le,oe,ce),me=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],ue=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),be=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),ge=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),_e=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","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","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse() -;var fe="[0-9](_*[0-9])*",ve=`\\.(${fe})`,he="[0-9a-fA-F](_*[0-9a-fA-F])*",we={ +;const se="[A-Za-z$_][0-9A-Za-z$_]*",re={scope:"number", +match:"([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity", +relevance:0 +},ie=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],oe=["true","false","null","undefined","NaN","Infinity"],ce=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],le=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],de=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],pe=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],me=[].concat(de,ce,le),ue=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],be=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ge=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),_e=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),fe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","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","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse() +;var ve="[0-9](_*[0-9])*",he=`\\.(${ve})`,we="[0-9a-fA-F](_*[0-9a-fA-F])*",Ee={ className:"number",variants:[{ -begin:`(\\b(${fe})((${ve})|\\.)?|(${ve}))[eE][+-]?(${fe})[fFdD]?\\b`},{ -begin:`\\b(${fe})((${ve})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ -begin:`(${ve})[fFdD]?\\b`},{begin:`\\b(${fe})[fFdD]\\b`},{ -begin:`\\b0[xX]((${he})\\.?|(${he})?\\.(${he}))[pP][+-]?(${fe})[fFdD]?\\b`},{ -begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${he})[lL]?\\b`},{ +begin:`(\\b(${ve})((${he})|\\.)?|(${he}))[eE][+-]?(${ve})[fFdD]?\\b`},{ +begin:`\\b(${ve})((${he})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${he})[fFdD]?\\b`},{begin:`\\b(${ve})[fFdD]\\b`},{ +begin:`\\b0[xX]((${we})\\.?|(${we})?\\.(${we}))[pP][+-]?(${ve})[fFdD]?\\b`},{ +begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${we})[lL]?\\b`},{ begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], -relevance:0};function Ee(e,n,t){return-1===t?"":e.replace(n,(a=>Ee(e,n,t-1)))} -function ye(e){const n=e.regex,t=se,a={begin:/<[A-Za-z0-9\\._:-]+/, +relevance:0};function ye(e,n,t){return-1===t?"":e.replace(n,a=>ye(e,n,t-1))} +function xe(e){const n=e.regex,t=se,a={begin:/<[A-Za-z0-9\\._:-]+/, end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ const t=e[0].length+e.index,a=e.input[t] ;if("<"===a||","===a)return void n.ignoreMatch();let s @@ -324,7 +322,7 @@ const t=e[0].length+e.index,a=e.input[t] ;return-1!==e.input.indexOf(t,n)})(e,{after:t})||n.ignoreMatch()) ;const r=e.input.substring(t) ;((s=r.match(/^\s*=/))||(s=r.match(/^\s+extends\s+/))&&0===s.index)&&n.ignoreMatch() -}},s={$pattern:se,keyword:re,literal:ie,built_in:pe,"variable.language":de +}},s={$pattern:se,keyword:ie,literal:oe,built_in:me,"variable.language":pe },r="[0-9](_?[0-9])*",i=`\\.(${r})`,o="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",c={ className:"number",variants:[{ begin:`(\\b(${o})((${i})|\\.)?|(${i}))[eE][+-]?(${r})\\b`},{ @@ -355,11 +353,11 @@ match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")* scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{ match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},w={relevance:0, match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/), -className:"title.class",keywords:{_:[...oe,...ce]}},E={variants:[{ +className:"title.class",keywords:{_:[...ce,...le]}},E={variants:[{ match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}], className:{1:"keyword",3:"title.function"},label:"func.def",contains:[v], illegal:/%/},y={ -match:n.concat(/\b/,(x=[...le,"super","import"].map((e=>e+"\\s*\\(")), +match:n.concat(/\b/,(x=[...de,"super","import","await"].map(e=>e+"\\s*\\("), n.concat("(?!",x.join("|"),")")),t,n.lookahead(/\s*\(/)), className:"title.function",relevance:0};var x;const N={ begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t, @@ -370,7 +368,7 @@ contains:[{begin:/\(\)/},v] match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(O)], keywords:"async",className:{1:"keyword",3:"title.function"},contains:[v]} ;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:s,exports:{ -PARAMS_CONTAINS:f,CLASS_REFERENCE:w},illegal:/#(?![$_A-z])/, +PARAMS_CONTAINS:f,CLASS_REFERENCE:w},illegal:/#(?![$_A-Za-z])/, contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ label:"use_strict",className:"meta",relevance:10, begin:/^\s*['"]use (strict|asm)['"]/ @@ -392,7 +390,7 @@ returnBegin:!0,label:"func.def",contains:[v,e.inherit(e.TITLE_MODE,{begin:t, className:"title.function"})]},{match:/\.\.\./,relevance:0},N,{match:"\\$"+t, relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, contains:[v]},y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, -className:"variable.constant"},h,k,{match:/\$[(.]/}]}}var xe=Object.freeze({ +className:"variable.constant"},h,k,{match:/\$[(.]/}]}}var Ne=Object.freeze({ __proto__:null,grmr_abnf:e=>{const n=e.regex,t=e.COMMENT(/;/,/$/);return{ name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/, keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"], @@ -473,10 +471,10 @@ name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, keyword:["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"], literal:["true","false"], built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] -},contains:[l,e.SHEBANG(),d,c,r,i,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{ -className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},grmr_basic:e=>({ -name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{ -$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*", +},contains:[l,e.SHEBANG(),d,c,r,{match:[/\s+/,/-{1,2}[\w-]+/],scope:{2:"attr"} +},i,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{className:"string",begin:/'/, +end:/'/},{match:/\\'/},t]}},grmr_basic:e=>({name:"BASIC",case_insensitive:!0, +illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*", keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"] },contains:[{scope:"string",begin:/"/,end:/"|$/,contains:[e.BACKSLASH_ESCAPE] },e.COMMENT("REM","$",{relevance:10}),e.COMMENT("'","$",{relevance:0}),{ @@ -495,42 +493,46 @@ begin:"[\\.,]",relevance:0},{begin:/(?=\+\+|--)/,contains:[n]},n]}},grmr_c:e=>{ const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] }),a="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(s)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",i={ className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ -match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +match:n.concat(/\batomic_/,n.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/) +}]},o={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE]},{ begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={ +begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},c={ className:"number",variants:[{match:/\b(0b[01']+)/},{ match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/ },{ match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/ },{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0 -},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +},l={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"}, +contains:[{begin:/\\\n/},o,{scope:"string",begin:/<.*?>/ +},t,e.C_BLOCK_COMMENT_MODE]},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/, +keywords:{ keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ -className:"title",begin:n.optional(s)+e.IDENT_RE,relevance:0 -},p=n.optional(s)+e.IDENT_RE+"\\s*\\(",m={ +},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string" +}),t,e.C_BLOCK_COMMENT_MODE]},p=[l,d],m={className:"title", +begin:n.optional(s)+e.IDENT_RE,relevance:0 +},u=n.optional(s)+e.IDENT_RE+"\\s*\\(",b={ keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"], -literal:"true false NULL", -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" -},u=[l,i,t,e.C_BLOCK_COMMENT_MODE,c,o],b={variants:[{begin:/=/,end:/;/},{ +literal:["true","false","NULL"], +built_in:["stdin","stdout","stderr","abort","abs","acos","asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","fscanf","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","vfprintf","vprintf","vsprintf"] +},g=[...p,i,t,e.C_BLOCK_COMMENT_MODE,c,o],_={variants:[{begin:/=/,end:/;/},{ begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:m,contains:u.concat([{begin:/\(/,end:/\)/,keywords:m, -contains:u.concat(["self"]),relevance:0}]),relevance:0},g={ -begin:"("+r+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:m,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:m,relevance:0},{ -begin:p,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})], +keywords:b,contains:g.concat([{begin:/\(/,end:/\)/,keywords:b, +contains:g.concat(["self"]),relevance:0}]),relevance:0},f={ +begin:"("+r+"[\\*&\\s]+){1,12}"+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:b,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:b,relevance:0},{ +begin:u,returnBegin:!0,contains:[e.inherit(m,{className:"title.function"})], relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/, -keywords:m,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,c,i,{begin:/\(/, -end:/\)/,keywords:m,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,c,i] -}]},i,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C",aliases:["h"],keywords:m, -disableAutodetect:!0,illegal:"=]/,contains:[{ -beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:l, -strings:o,keywords:m}}},grmr_clojure:e=>{ +beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:d, +strings:o,keywords:b}}},grmr_clojure:e=>{ const n="a-zA-Z_\\-!.?+*=<>&'",t="[#]?["+n+"]["+n+"0-9/;:$#]*",a="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",s={ $pattern:t, built_in:a+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize" @@ -554,13 +556,14 @@ relevance:0,excludeEnd:!0,endsParent:!0}].concat(v)} ;return g.contains=[h,f,_],_.contains=v,u.contains=v,{name:"Clojure", aliases:["clj","edn"],illegal:/\S/,contains:[d,g,o,c,l,p,b,u,i,m]}}, grmr_cmake:e=>({name:"CMake",aliases:["cmake.in"],case_insensitive:!0,keywords:{ -keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run 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 build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined" +keyword:"block break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endblock endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run 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 build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined" },contains:[{className:"variable",begin:/\$\{/,end:/\}/ -},e.COMMENT(/#\[\[/,/]]/),e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE] -}),grmr_coffeescript:e=>{const n={ -keyword:re.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((t=["var","const","let","function","static"], -e=>!t.includes(e))),literal:ie.concat(["yes","no","on","off"]), -built_in:pe.concat(["npm","print"])};var t +},e.COMMENT(/#\[\[/,/]]/),e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,{ +scope:"number",begin:/\b\d+(\.\d+)?\b/,relevance:0}]}),grmr_coffeescript:e=>{ +const n={ +keyword:ie.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((t=["var","const","let","function","static"], +e=>!t.includes(e))),literal:oe.concat(["yes","no","on","off"]), +built_in:me.concat(["npm","print"])};var t ;const a="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/\}/, keywords:n},r=[e.BINARY_NUMBER_MODE,e.inherit(e.C_NUMBER_MODE,{starts:{ end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/, @@ -589,40 +592,42 @@ className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{ begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={ +begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},c={ className:"number",variants:[{ -begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|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])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)" +begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[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])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)" },{ begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)" -}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ -className:"title",begin:n.optional(s)+e.IDENT_RE,relevance:0 -},p=n.optional(s)+e.IDENT_RE+"\\s*\\(",m=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],u={ +}],relevance:0},l=[{scope:"meta",begin:/#\s*include\b/,end:/$/, +keywords:["include"],contains:[{begin:/\\\n/},o,{scope:"string",begin:/<.*?>/ +},t,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/, +keywords:["if","else","elif","embed","endif","define","undef","warning","error","line","pragma","_Pragma","ifdef","ifndef","include"], +contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string" +}),t,e.C_BLOCK_COMMENT_MODE]}],d={className:"title", +begin:n.optional(s)+e.IDENT_RE,relevance:0 +},p=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","contract_assert","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","pre","private","protected","post","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq","_Atomic","_BitInt"],m=n.optional(s)+`\\b(?!(?:${p.map(e=>e.replace(/\|\d+/,"")).join("|")})\\b)`+e.IDENT_RE+"\\s*\\(",u={ type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], -keyword:m,literal:["NULL","false","nullopt","nullptr","true"], +keyword:p,literal:["NULL","false","nullopt","nullptr","true"], built_in:["_Pragma"], _type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] -},b={className:"function.dispatch",relevance:0,keywords:{ +},b=n.either(...p.map(e=>e.replace(/\|\d+$/,""))),g={scope:"function.dispatch", +keywords:{ _hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] -}, -begin:n.concat(/\b/,`(?!${m.join("|")})`,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/)) -},g=[b,l,i,t,e.C_BLOCK_COMMENT_MODE,c,o],_={variants:[{begin:/=/,end:/;/},{ +},begin:n.concat(/\b/,`(?!${b}\\b)`,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/)) +},_=[g,...l,i,t,e.C_BLOCK_COMMENT_MODE,c,o],f={variants:[{begin:/=/,end:/;/},{ begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u, -contains:g.concat(["self"]),relevance:0}]),relevance:0},f={className:"function", -begin:"("+r+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,contains:_.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:_.concat(["self"]),relevance:0}]),relevance:0},v={className:"function", +begin:"("+r+"[\\*&\\s]+){1,12}"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ -begin:p,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{ +begin:m,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{ begin:/:/,endsWithParent:!0,contains:[o,c]},{relevance:0,match:/,/},{ className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, contains:[t,e.C_BLOCK_COMMENT_MODE,o,c,i,{begin:/\(/,end:/\)/,keywords:u, relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,c,i]}] -},i,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", +},i,t,e.C_BLOCK_COMMENT_MODE,...l]};return{name:"C++", aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",i]},{begin:e.IDENT_RE+"::",keywords:u},{ match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], @@ -630,24 +635,24 @@ className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={ keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"]), built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{ -begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{ -begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] -},r=e.inherit(s,{illegal:/\n/}),i={className:"subst",begin:/\{/,end:/\}/, -keywords:n},o=e.inherit(i,{illegal:/\n/}),c={className:"string",begin:/\$"/, +begin:"[a-zA-Z](\\.?\\w)*"}),a="\\d(_*\\d)*",s="([uU][lL]?|[lL][uU]?)?",r={ +className:"number",variants:[{begin:"\\b0[bB]_*[01](_*[01])*"+s},{ +begin:"(-?)\\b0[xX]_*[a-fA-F0-9](_*[a-fA-F0-9])*"+s},{ +begin:"(-?)(\\b"+a+"(\\.("+a+")?)?|\\."+a+")([eE][-+]?"+a+")?([fFdDmM]|[uU][lL]?|[lL][uU]?)?" +}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},o=e.inherit(i,{illegal:/\n/}),c={className:"subst",begin:/\{/,end:/\}/, +keywords:n},l=e.inherit(c,{illegal:/\n/}),d={className:"string",begin:/\$"/, end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ -},e.BACKSLASH_ESCAPE,o]},l={className:"string",begin:/\$@"/,end:'"',contains:[{ -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},i]},d=e.inherit(l,{illegal:/\n/, -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]}) -;i.contains=[l,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE], -o.contains=[d,c,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{ -illegal:/\n/})];const p={variants:[{className:"string", +},e.BACKSLASH_ESCAPE,l]},p={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},c]},m=e.inherit(p,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]}) +;c.contains=[p,d,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE], +l.contains=[m,d,o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const u={variants:[{className:"string", begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1 -},l,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},m={begin:"<",end:">", +},p,d,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},b={begin:"<",end:">", contains:[{beginKeywords:"in out"},t] -},u=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={ +},g=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",_={ begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ @@ -655,29 +660,31 @@ begin:"\x3c!--|--\x3e"},{begin:""}]}] }),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", end:"$",keywords:{ keyword:"if else elif endif define undef warning error line region endregion pragma checksum" -}},p,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +}},u,r,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" -},t,m,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +},t,b,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", relevance:0,end:/[{;=]/,illegal:/[^\s:]/, contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, -contains:[t,m,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +contains:[t,b,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ className:"string",begin:/"/,end:/"/}]},{ beginKeywords:"new return throw await else",relevance:0},{className:"function", -begin:"("+u+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +begin:"("+g+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, -contains:[e.TITLE_MODE,m],relevance:0},{match:/\(\)/},{className:"params", +contains:[e.TITLE_MODE,b],relevance:0},{match:/\(\)/},{className:"params", begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, -contains:[p,a,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}},grmr_css:e=>{ +contains:[u,r,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},_]}},grmr_css:e=>{ const n=e.regex,t=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", -begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ -className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ -scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{ +scope:"number", +begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/}, +FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/}, +ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ scope:"number", begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", @@ -689,18 +696,18 @@ begin:/-(webkit|moz|ms|o)-(?=[a-z])/},t.CSS_NUMBER_MODE,{ className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{ className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 },t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ -begin:":("+be.join("|")+")"},{begin:":(:)?("+ge.join("|")+")"}] -},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+_e.join("|")+")\\b"},{ +begin:":("+ge.join("|")+")"},{begin:":(:)?("+_e.join("|")+")"}] +},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+fe.join("|")+")\\b"},{ begin:/:/,end:/[;}{]/, -contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{ +contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,t.UNICODE_RANGE,...a,{ begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" },contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0, excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]", relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ },{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:ue.join(" ")},contains:[{ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:be.join(" ")},contains:[{ begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{ -className:"selector-tag",begin:"\\b("+me.join("|")+")\\b"}]}},grmr_d:e=>{ +className:"selector-tag",begin:"\\b("+ue.join("|")+")\\b"}]}},grmr_d:e=>{ const n={$pattern:e.UNDERSCORE_IDENT_RE, keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__", built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring", @@ -737,7 +744,7 @@ relevance:0,variants:[{match:/\b\d[\d_]*(\.\d[\d_]*)?/},{match:/\$[\dA-Fa-f_]+/ },{match:/\$/,relevance:0},{match:/&[0-7][0-7_]*/},{match:/%[01_]+/},{match:/%/, relevance:0}]},i,o,a].concat(t)}},grmr_diff:e=>{const n=e.regex;return{ name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10, -match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) +match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) },{className:"comment",variants:[{ begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ @@ -775,7 +782,7 @@ className:"function",begin:"^"+n+"\\s*\\(",end:"->",returnBegin:!0, illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[f,e.inherit(e.TITLE_MODE,{begin:n})], starts:{end:";|\\.",keywords:a,contains:_}},s,{begin:"^-",end:"\\.",relevance:0, excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE, -keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-moduledoc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec","-on_load","-nifs"].map((e=>e+"|1.5")).join(" ") +keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-moduledoc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec","-on_load","-nifs"].map(e=>e+"|1.5").join(" ") },contains:[f,b,u,e.QUOTE_STRING_MODE]},r,b,u,e.QUOTE_STRING_MODE,p,l,d,c,m,{ begin:/\.$/}]}},grmr_fortran:e=>{const n=e.regex,t={ variants:[e.COMMENT("!","$",{relevance:0}),e.COMMENT("^C[ ]","$",{relevance:0 @@ -825,18 +832,21 @@ scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/ },e.BACKSLASH_ESCAPE,k]},M={scope:"string",begin:/(\$@|@\$)"/,end:/"/, contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},e.BACKSLASH_ESCAPE,k]},A={ scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/ -},k],relevance:2},S={scope:"string", +},k],relevance:2},C={scope:"string", match:b(/'/,g(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/) -};return k.contains=[M,O,x,y,S,n,s,r,_,h,w,E,o,d],{name:"F#", +};return k.contains=[M,O,x,y,C,n,s,r,_,h,w,E,o,d],{name:"F#", aliases:["fs","f#"],keywords:a,illegal:/\/\*/,classNameAliases:{ -"computation-expression":"keyword"},contains:[n,{variants:[A,M,O,N,x,y,S] -},s,r,v,{scope:"meta",begin:/\[\]/,relevance:2,contains:[r,N,x,y,S,E] -},f,_,h,w,E,o,d]}},grmr_go:e=>{const n={ +"computation-expression":"keyword"},contains:[n,{variants:[A,M,O,N,x,y,C] +},s,r,v,{scope:"meta",begin:/\[\]/,relevance:2,contains:[r,N,x,y,C,E] +},f,_,h,w,E,o,d]}},grmr_go:e=>{const n=e.regex,t={ keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], literal:["true","false","iota","nil"], built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{ +excludeEnd:!0,contains:[s,e.TITLE_MODE,a]}]}},grmr_haskell:e=>{ const n="([0-9]_*)+",t="([0-9a-fA-F]_*)+",a="([!#$%&*+.\\/<=>?@\\\\^~-]|(?!([(),;\\[\\]`|{}]|[_:\"']))(\\p{S}|\\p{P}))",s={ variants:[e.COMMENT("--+","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},r={ className:"meta",begin:/\{-#/,end:/#-\}/},i={className:"meta",begin:"^#",end:"$" @@ -868,7 +878,7 @@ contains:[c,s],illegal:"\\W\\.|;"},{className:"class", begin:"^(\\s*)?(class|instance)\\b",end:"where", keywords:"class family instance where",contains:[o,c,s]},{className:"class", begin:"\\b(data|(new)?type)\\b",end:"$", -keywords:"data family type newtype deriving",contains:[r,o,c,{begin:/\{/, +keywords:"data family type newtype deriving where",contains:[r,o,c,{begin:/\{/, end:/\}/,contains:c.contains},s]},{beginKeywords:"default",end:"$", contains:[o,c,s]},{beginKeywords:"infix infixl infixr",end:"$", contains:[e.C_NUMBER_MODE,s]},{begin:"\\bforeign\\b",end:"$", @@ -891,14 +901,14 @@ name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ begin:n.concat(c,"(\\s*\\.\\s*",c,")*",n.lookahead(/\s*=\s*[^#\s]/)), className:"attr",starts:{end:/$/,contains:[a,o,r,s,i,t]}}]}},grmr_java:e=>{ -const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+Ee("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),s={ +const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a="(?:(?:\\s*\\[\\s*])+)?",s=t+"(?:\\."+t+")*<@@@>"+a,r="(?:\\?(?:\\s+(?:extends|super)\\s+"+s+")?|"+s+")",i=ye("(?:\\s*<\\s*"+r+"(?:\\s*,\\s*"+r+")*\\s*>)?",/<@@@>/g,2),o={ keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"], literal:["false","true","null"], type:["char","boolean","long","float","int","byte","short","double"], -built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ -begin:/\(/,end:/\)/,contains:["self"]}]},i={className:"params",begin:/\(/, -end:/\)/,keywords:s,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} -;return{name:"Java",aliases:["jsp"],keywords:s,illegal:/<\/|#/, +built_in:["super","this"]},c={className:"meta",begin:"@"+t,contains:[{ +begin:/\(/,end:/\)/,contains:["self"]}]},l={className:"params",begin:/\(/, +end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} +;return{name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/, contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 @@ -907,20 +917,21 @@ className:"string",contains:[e.BACKSLASH_ESCAPE] },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ 1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ -begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", -3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", -3:"title.class"},contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"new throw return else",relevance:0},{ -begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ -2:"title.function"},keywords:s,contains:[{className:"params",begin:/\(/, -end:/\)/,keywords:s,relevance:0, -contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,we,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},we,r]}},grmr_javascript:ye, +beginKeywords:"new throw return else yield assert",relevance:0},{ +begin:[t,n.concat(i,a,/\s+/),t,a,/\s*/,/=(?!=)/],className:{1:"type", +3:"variable",6:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", +3:"title.class"},contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +begin:[t,n.concat(i,a,/\s+/),t,/\s*(?=\()/],className:{1:"type", +3:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/, +end:/\)/,keywords:o,relevance:0, +contains:[c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Ee,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Ee,c]}},grmr_javascript:xe, grmr_json:e=>{const n=["true","false","null"],t={scope:"literal", -beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{ -literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/, -relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0 -},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc","json5"], +keywords:{literal:n},contains:[{className:"attr", +begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},{ +match:/[{}[\],:]/,className:"punctuation",relevance:0 +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,t,re,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], illegal:"\\S"}},grmr_julia:e=>{ const n="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:n, keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"], @@ -941,9 +952,9 @@ begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/ begin:/\^{5}[0-9a-f]{5}/},{begin:/\^{4}[0-9a-f]{4}/},{begin:/\^{3}[0-9a-f]{3}/ },{begin:/\^{2}[0-9a-f]{2}/},{begin:/\^{2}[\u0000-\u007f]/}],t=[{ className:"keyword",begin:/\\/,relevance:0,contains:[{endsParent:!0, -begin:e.regex.either(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map((e=>e+"(?![a-zA-Z@:_])"))) +begin:e.regex.either(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map(e=>e+"(?![a-zA-Z@:_])")) },{endsParent:!0, -begin:RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map((e=>e+"(?![a-zA-Z:_])")).join("|")) +begin:RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map(e=>e+"(?![a-zA-Z:_])").join("|")) },{endsParent:!0,variants:n},{endsParent:!0,relevance:0,variants:[{ begin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}]}]},{className:"params",relevance:0, begin:/#+\d?/},{variants:n},{className:"built_in",relevance:0,begin:/[$&^_]/},{ @@ -963,25 +974,26 @@ className:"string",end:"(?=\\\\end\\{"+e+"\\})"}),b=(e="string")=>({relevance:0, begin:/\{/,starts:{endsParent:!0,contains:[{className:e,end:/(?=\})/, endsParent:!0,contains:[{begin:/\{/,end:/\}/,relevance:0,contains:["self"]}]}]} });return{name:"LaTeX",aliases:["tex"], -contains:[...["verb","lstinline"].map((e=>d(e,{contains:[m()]}))),d("mint",l(o,{ +contains:[...["verb","lstinline"].map(e=>d(e,{contains:[m()]})),d("mint",l(o,{ contains:[m()]})),d("mintinline",l(o,{contains:[b(),m()]})),d("url",{ contains:[b("link"),b("link")]}),d("hyperref",{contains:[b("link")] }),d("href",l(c,{contains:[b("link")] -})),...[].concat(...["","\\*"].map((e=>[p("verbatim"+e,u("verbatim"+e)),p("filecontents"+e,l(o,u("filecontents"+e))),...["","B","L"].map((n=>p(n+"Verbatim"+e,l(c,u(n+"Verbatim"+e)))))]))),p("minted",l(c,l(o,u("minted")))),...t] +})),...[].concat(...["","\\*"].map(e=>[p("verbatim"+e,u("verbatim"+e)),p("filecontents"+e,l(o,u("filecontents"+e))),...["","B","L"].map(n=>p(n+"Verbatim"+e,l(c,u(n+"Verbatim"+e))))])),p("minted",l(c,l(o,u("minted")))),...t] }},grmr_lisp:e=>{ const n="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",t="\\|[^]*?\\|",a="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",s={ className:"literal",begin:"\\b(t{1}|nil)\\b"},r={className:"number",variants:[{ begin:a,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{ begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{ begin:"#(c|C)\\("+a+" +"+a,end:"\\)"}]},i=e.inherit(e.QUOTE_STRING_MODE,{ -illegal:null}),o=e.COMMENT(";","$",{relevance:0}),c={begin:"\\*",end:"\\*"},l={ -className:"symbol",begin:"[:&]"+n},d={begin:n,relevance:0},p={begin:t},m={ -contains:[r,i,c,l,{begin:"\\(",end:"\\)",contains:["self",s,i,r,d]},d], -variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{ -name:"quote"}},{begin:"'"+t}]},u={variants:[{begin:"'"+n},{ -begin:"#'"+n+"(::"+n+")*"}]},b={begin:"\\(\\s*",end:"\\)"},g={endsWithParent:!0, -relevance:0};return b.contains=[{className:"name",variants:[{begin:n,relevance:0 -},{begin:t}]},g],g.contains=[m,u,b,s,r,i,o,c,l,p,d],{name:"Lisp",illegal:/\S/, +illegal:null}),o=e.COMMENT(";","$",{relevance:0}),c={scope:"variable", +match:/\*[^\s()*]+\*/},l={className:"symbol",begin:"[:&]"+n},d={begin:n, +relevance:0},p={begin:t},m={contains:[r,i,c,l,{begin:"\\(",end:"\\)", +contains:["self",s,i,r,d]},d],variants:[{begin:"['`]\\(",end:"\\)"},{ +begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+t}]},u={ +variants:[{begin:"'"+n},{begin:"#'"+n+"(::"+n+")*"}]},b={begin:"\\(\\s*", +end:"\\)"},g={endsWithParent:!0,relevance:0};return b.contains=[{ +className:"name",variants:[{begin:n,relevance:0},{begin:t}] +},g],g.contains=[m,u,b,s,r,i,o,c,l,p,d],{name:"Lisp",illegal:/\S/, contains:[r,e.SHEBANG(),s,i,o,m,u,b,d]}},grmr_llvm:e=>{ const n=e.regex,t=/([-a-zA-Z$._][\w$.-]*)/,a={className:"variable",variants:[{ begin:n.concat(/%/,t)},{begin:/%\d+/},{begin:/#\d+/}]},s={className:"title", @@ -990,17 +1002,18 @@ begin:n.concat(/!\d+/,t)},{begin:/!\d+/}]};return{name:"LLVM IR",keywords:{ keyword:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly", type:"void half bfloat float double fp128 x86_fp80 ppc_fp128 x86_amx x86_mmx ptr label token metadata opaque" },contains:[{className:"type",begin:/\bi\d+(?=\s|\b)/},e.COMMENT(/;\s*$/,null,{ -relevance:0}),e.COMMENT(/;/,/$/),{className:"string",begin:/"/,end:/"/, -contains:[{className:"char.escape",match:/\\\d\d/}]},s,{className:"punctuation", -relevance:0,begin:/,/},{className:"operator",relevance:0,begin:/=/},a,{ -className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},{ -className:"number",variants:[{begin:/[su]?0[xX][KMLHR]?[a-fA-F0-9]+/},{ +relevance:0}),e.COMMENT(/;/,/$/),e.C_BLOCK_COMMENT_MODE,{className:"string", +begin:/"/,end:/"/,contains:[{className:"char.escape",match:/\\\d\d/}]},s,{ +className:"punctuation",relevance:0,begin:/,/},{className:"operator", +relevance:0,begin:/=/},a,{className:"symbol",variants:[{begin:/^\s*[a-z]+:/}], +relevance:0},{className:"number",variants:[{ +begin:/[su]?0[xX][KMLHR]?[a-fA-F0-9]+/},{ begin:/[-+]?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0}]}}, grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"] },s=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10 })];return{name:"Lua",aliases:["pluto"],keywords:{ $pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil", -keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +keyword:"and break do else elseif end for goto if in local global not or repeat return then until while", built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" },contains:s.concat([{className:"function",beginKeywords:"function",end:"\\)", contains:[e.inherit(e.TITLE_MODE,{ @@ -1034,19 +1047,20 @@ variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] },s={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] }),i=e.inherit(s,{contains:[]});a.contains.push(i),s.contains.push(r) -;let o=[n,t];return[a,s,r,i].forEach((e=>{e.contains=e.contains.concat(o) -})),o=o.concat(a,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +;let o=[n,t];return[a,s,r,i].forEach(e=>{e.contains=e.contains.concat(o) +}),o=o.concat(a,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{ begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", -end:"\\s+",excludeEnd:!0},a,s,{className:"quote",begin:"^>\\s+",contains:o, -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +end:"\\s+",excludeEnd:!0},{match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},a,s,{ +className:"quote",begin:"^>\\s+",contains:o,end:"$"},{className:"code", +variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ -begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},t,{ +begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/, +end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/, +excludeBegin:!0}]},{scope:"literal", match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}, grmr_mipsasm:e=>({name:"MIPS Assembly",case_insensitive:!0,aliases:["mips"], keywords:{$pattern:"\\.?"+e.IDENT_RE, @@ -1079,7 +1093,7 @@ keyword:["assert","else","if","in","inherit","let","or","rec","then","with"], literal:["true","false","null"], built_in:["abort","baseNameOf","builtins","derivation","derivationStrict","dirOf","fetchGit","fetchMercurial","fetchTarball","fetchTree","fromTOML","import","isNull","map","placeholder","removeAttrs","scopedImport","throw","toString"] },a={scope:"built_in", -match:n.either(...["abort","add","addDrvOutputDependencies","addErrorContext","all","any","appendContext","attrNames","attrValues","baseNameOf","bitAnd","bitOr","bitXor","break","builtins","catAttrs","ceil","compareVersions","concatLists","concatMap","concatStringsSep","convertHash","currentSystem","currentTime","deepSeq","derivation","derivationStrict","dirOf","div","elem","elemAt","false","fetchGit","fetchMercurial","fetchTarball","fetchTree","fetchurl","filter","filterSource","findFile","flakeRefToString","floor","foldl'","fromJSON","fromTOML","functionArgs","genList","genericClosure","getAttr","getContext","getEnv","getFlake","groupBy","hasAttr","hasContext","hashFile","hashString","head","import","intersectAttrs","isAttrs","isBool","isFloat","isFunction","isInt","isList","isNull","isPath","isString","langVersion","length","lessThan","listToAttrs","map","mapAttrs","match","mul","nixPath","nixVersion","null","parseDrvName","parseFlakeRef","partition","path","pathExists","placeholder","readDir","readFile","readFileType","removeAttrs","replaceStrings","scopedImport","seq","sort","split","splitVersion","storeDir","storePath","stringLength","sub","substring","tail","throw","toFile","toJSON","toPath","toString","toXML","trace","traceVerbose","true","tryEval","typeOf","unsafeDiscardOutputDependency","unsafeDiscardStringContext","unsafeGetAttrPos","warn","zipAttrsWith"].map((e=>"builtins\\."+e))), +match:n.either(...["abort","add","addDrvOutputDependencies","addErrorContext","all","any","appendContext","attrNames","attrValues","baseNameOf","bitAnd","bitOr","bitXor","break","builtins","catAttrs","ceil","compareVersions","concatLists","concatMap","concatStringsSep","convertHash","currentSystem","currentTime","deepSeq","derivation","derivationStrict","dirOf","div","elem","elemAt","false","fetchGit","fetchMercurial","fetchTarball","fetchTree","fetchurl","filter","filterSource","findFile","flakeRefToString","floor","foldl'","fromJSON","fromTOML","functionArgs","genList","genericClosure","getAttr","getContext","getEnv","getFlake","groupBy","hasAttr","hasContext","hashFile","hashString","head","import","intersectAttrs","isAttrs","isBool","isFloat","isFunction","isInt","isList","isNull","isPath","isString","langVersion","length","lessThan","listToAttrs","map","mapAttrs","match","mul","nixPath","nixVersion","null","parseDrvName","parseFlakeRef","partition","path","pathExists","placeholder","readDir","readFile","readFileType","removeAttrs","replaceStrings","scopedImport","seq","sort","split","splitVersion","storeDir","storePath","stringLength","sub","substring","tail","throw","toFile","toJSON","toPath","toString","toXML","trace","traceVerbose","true","tryEval","typeOf","unsafeDiscardOutputDependency","unsafeDiscardStringContext","unsafeGetAttrPos","warn","zipAttrsWith"].map(e=>"builtins\\."+e)), relevance:10},s="[A-Za-z_][A-Za-z0-9_'-]*",r={scope:"symbol", match:RegExp(`<${s}(/${s})*>`)},i="[A-Za-z0-9_\\+\\.-]+",o={scope:"symbol", match:RegExp(`(\\.\\.|\\.|~)?/(${i})?(/${i})*(?=[\\s;])`) @@ -1187,9 +1201,9 @@ begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" }],relevance:0 },m=["false","null","true"],u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],g={ -keyword:u,literal:(e=>{const n=[];return e.forEach((e=>{ -n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase()) -})),n})(m),built_in:b},_=e=>e.map((e=>e.replace(/\|\d+$/,""))),f={variants:[{ +keyword:u,literal:(e=>{const n=[];return e.forEach(e=>{ +n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())}), +n})(m),built_in:b},_=e=>e.map(e=>e.replace(/\|\d+$/,"")),f={variants:[{ match:[/new/,n.concat(l,"+"),n.concat("(?!",_(b).join("\\b|"),"\\b)"),s],scope:{ 1:"keyword",4:"title.class"}}]},v=n.concat(a,"\\b(?!\\()"),h={variants:[{ match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),v],scope:{2:"variable.constant" @@ -1199,11 +1213,12 @@ match:[s,n.concat(/::/,n.lookahead(/(?!class\b)/)),v],scope:{1:"title.class", scope:{1:"title.class"}},{match:[s,/::/,/class/],scope:{1:"title.class", 3:"variable.language"}}]},w={scope:"attr", match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},E={relevance:0, -begin:/\(/,end:/\)/,keywords:g,contains:[w,i,h,e.C_BLOCK_COMMENT_MODE,d,p,f] +begin:/\(/,end:/\)/,keywords:g, +contains:[w,i,h,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,d,p,f] },y={relevance:0, match:[/\b/,n.concat("(?!fn\\b|function\\b|",_(u).join("\\b|"),"|",_(b).join("\\b|"),"\\b)"),a,n.concat(l,"*"),n.lookahead(/(?=\()/)], scope:{3:"title.function.invoke"},contains:[E]};E.contains.push(y) -;const x=[w,h,e.C_BLOCK_COMMENT_MODE,d,p,f],N={ +;const x=[w,h,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,d,p,f],N={ begin:n.concat(/#\[\s*\\?/,n.either(s,r)),beginScope:"meta",end:/]/, endScope:"meta",keywords:{literal:m,keyword:["new","array"]},contains:[{ begin:/\[/,end:/]/,keywords:{literal:m,keyword:["new","array"]}, @@ -1220,18 +1235,18 @@ scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" },e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:g, -contains:["self",N,i,h,e.C_BLOCK_COMMENT_MODE,d,p]}]},{scope:"class",variants:[{ -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ -beginKeywords:"use",relevance:0,end:";",contains:[{ +contains:["self",N,i,h,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,d,p] +}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{ +beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/, +excludeEnd:!0,contains:[{beginKeywords:"extends implements" +},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";", +illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class" +})]},{beginKeywords:"use",relevance:0,end:";",contains:[{ match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},d,p]} },grmr_python:e=>{ -const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s={ +const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","lazy","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s={ $pattern:/[A-Za-z]\w+|__\w+__/,keyword:a, -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","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","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +built_in:["__import__","abs","aiter","all","anext","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozendict","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","reversed","round","sentinel","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] },r={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/, @@ -1241,14 +1256,15 @@ begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, -contains:[e.BACKSLASH_ESCAPE,r,o,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,r,o,i]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/, end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,i]},{begin:/([uU]|[rR])'/,end:/'/, relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, -contains:[e.BACKSLASH_ESCAPE,o,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,o,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,o,i]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/, +end:/"/,contains:[e.BACKSLASH_ESCAPE,o,i] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] },l="[0-9](_?[0-9])*",d=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,p="\\b|"+a.join("|"),m={ className:"number",relevance:0,variants:[{ begin:`(\\b(${l})|(${d}))[eE][+-]?(${l})[jJ]?(?=${p})`},{begin:`(${d})[jJ]?`},{ @@ -1262,7 +1278,10 @@ end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s, contains:["self",r,m,c,e.HASH_COMMENT_MODE]}]};return i.contains=[c,m,r],{ name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:s, illegal:/(<\/|\?)|=>/,contains:[r,m,{scope:"variable.language",match:/\bself\b/ -},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword" +},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},{ +beginKeywords:"from import",end:/$/,keywords:"from import as", +contains:[e.HASH_COMMENT_MODE]},{match:[/\./,t,/(?=\s*\()/],scope:{ +2:"title.function.invoke"}},{match:[/\./,t,/(?!\s*[\(\[])/],scope:{2:"property"} },c,u,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword", 3:"title.function"},contains:[b]},{variants:[{ match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}], @@ -1295,63 +1314,68 @@ begin:`\\b([1-9](_?[0-9])*|0)(\\.(${p}))?([eE][+-]?(${p})|r)?i?\\b`},{ begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" },{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ -begin:"\\b0(_?[0-7])+r?i?\\b"}]},u={variants:[{match:/\(\)/},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},u=[e.BACKSLASH_ESCAPE,l,{begin:/\[/,end:/\]/, +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{/,end:/\}/, +contains:["self",e.BACKSLASH_ESCAPE,l]}],b={variants:[{match:/\(\)/},{ className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, -keywords:r}]},b=[d,{variants:[{match:[/class\s+/,s,/\s+<\s+/,s]},{ +keywords:r}]},g=[d,{variants:[{match:[/class\s+/,s,/\s+<\s+/,s]},{ match:[/\b(class|module)\s+/,s]}],scope:{2:"title.class", 4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,s],scope:{ 2:"title.class"},keywords:r},{relevance:0,match:[s,/\.new[. (]/],scope:{ 1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{ -match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[u]},{ -begin:e.IDENT_RE+"::"},{className:"symbol", +match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ +scope:"regexp",contains:u,illegal:/\n/,variants:[{begin:/%r\{/,end:/\}[a-z]*/},{ +begin:/%r\(/,end:/\)[a-z]*/},{begin:/%r!/,end:/![a-z]*/},{begin:/%r\[/, +end:/\][a-z]*/}]},{begin:"::"},{className:"symbol", begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},m,{className:"variable", begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0, relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", -keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,l], -illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ -begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", -end:"\\][a-z]*"}]}].concat(o,c),relevance:0}].concat(o,c) -;l.contains=b,u.contains=b;const g=[{begin:/^\s*=>/,starts:{end:"$",contains:b} +keywords:"unless",contains:[{scope:"regexp",contains:u,illegal:/\n/,variants:[{ +begin:"/",end:"/[a-z]*"}]}].concat(o,c),relevance:0}].concat(o,c) +;l.contains=g,b.contains=g;const _=[{begin:/^\s*=>/,starts:{end:"$",contains:g} },{className:"meta.prompt", begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", -starts:{end:"$",keywords:r,contains:b}}];return c.unshift(o),{name:"Ruby", +starts:{end:"$",keywords:r,contains:g}}];return c.unshift(o),{name:"Ruby", aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/, -contains:[e.SHEBANG({binary:"ruby"})].concat(g).concat(c).concat(b)}}, +contains:[e.SHEBANG({binary:"ruby"})].concat(_).concat(c).concat(g)}}, grmr_rust:e=>{ const n=e.regex,t=/(r#)?/,a=n.concat(t,e.UNDERSCORE_IDENT_RE),s=n.concat(t,e.IDENT_RE),r={ -className:"title.function.invoke",relevance:0, -begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,n.lookahead(/\s*\(/)) -},i="([ui](8|16|32|64|128|size)|f(32|64))?",o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],c=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:c, -keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"], -literal:["true","false","Some","None","Ok","Err"],built_in:o},illegal:""},r]}}, -grmr_scala:e=>{const n=e.regex,t={className:"subst",variants:[{ -begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},a={className:"string", -variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"',illegal:"\\n", -contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"',illegal:"\\n", -contains:[e.BACKSLASH_ESCAPE,t]},{className:"string",begin:'[a-z]+"""', -end:'"""',contains:[t],relevance:10}]},s={className:"type", -begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},r={className:"title", +scope:"title.function.invoke",relevance:0, +begin:n.concat(/\b/,/(?!(?:let|for|while|if|else|match)\b)/,s,n.lookahead(/\s*\(/)) +},i=[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"] +})],o="([ui](8|16|32|64|128|size)|f(16|32|64|128))?",c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=e.inherit(e.QUOTE_STRING_MODE,{ +begin:/b?"/,illegal:null}),d={scope:"string", +begin:/b?r(#{0,255})"(.|\n)*?"\1(?!#)/},p={scope:"string",begin:/b?'/,end:/'/, +contains:[{scope:"char.escape",match:/\\('|"|\\|\w|x\w{2}|u\w{4}|U\w{8})/}] +},m=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f16","f32","f64","f128","str","char","bool","Box","Option","Result","String","Vec"] +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:m, +keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","raw","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"], +literal:["true","false","Some","None","Ok","Err"],built_in:c},illegal:""},r]}},grmr_scala:e=>{ +const n=e.regex,t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{ +begin:/\$\{/,end:/\}/}]},a={className:"string",variants:[{begin:'"""',end:'"""' +},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]},{ +className:"string",begin:'[a-z]+"""',end:'"""',contains:[t],relevance:10}]},s={ +className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},r={ +className:"title", begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/, relevance:0},i={className:"class",beginKeywords:"class object trait type", end:/[:={\[\n;]/,excludeEnd:!0, @@ -1397,16 +1421,16 @@ begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:n+":",relevance:0 },e.C_NUMBER_MODE,a,t,{begin:"\\|[ ]*"+n+"([ ]+"+n+")*[ ]*\\|",returnBegin:!0, end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+n}]},{begin:"#\\(", end:"\\)",contains:[e.APOS_STRING_MODE,t,e.C_NUMBER_MODE,a]}]}},grmr_sql:e=>{ -const n=e.regex,t=e.COMMENT("--","$"),a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=a,r=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!a.includes(e))),i={ +const n=e.regex,t=e.COMMENT("--","$"),a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=a,r=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter(e=>!a.includes(e)),i={ match:n.concat(/\b/,n.either(...s),/\s*\(/),relevance:0,keywords:{built_in:s}} ;function o(e){ -return n.concat(/\b/,n.either(...e.map((e=>e.replace(/\s+/,"\\s+")))),/\b/)} +return n.concat(/\b/,n.either(...e.map(e=>e.replace(/\s+/,"\\s+"))),/\b/)} const c={scope:"keyword", match:o(["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"]), relevance:0};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ $pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t -;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e)) -})(r,{when:e=>e.length<3}),literal:["true","false","unknown"], +;return n=n||[],e.map(e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e)})(r,{ +when:e=>e.length<3}),literal:["true","false","unknown"], type:["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"], built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] },contains:[{scope:"type", @@ -1428,23 +1452,23 @@ begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[a]}]},{ className:"string",contains:[e.BACKSLASH_ESCAPE], variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},a]}}, grmr_typescript:e=>{ -const n=e.regex,t=ye(e),a=se,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],r={ +const n=e.regex,t=xe(e),a=se,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],r={ begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"} },i={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{ keyword:"interface extends",built_in:s},contains:[t.exports.CLASS_REFERENCE] },o={$pattern:se, -keyword:re.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]), -literal:ie,built_in:pe.concat(s),"variable.language":de},c={className:"meta", -begin:"@"+a},l=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n)) +keyword:ie.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]), +literal:oe,built_in:me.concat(s),"variable.language":pe},c={className:"meta", +begin:"@"+a},l=(e,n,t)=>{const a=e.contains.findIndex(e=>e.label===n) ;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)} ;Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(c) -;const d=t.contains.find((e=>"attr"===e.scope)),p=Object.assign({},d,{ +;const d=t.contains.find(e=>"attr"===e.scope),p=Object.assign({},d,{ match:n.concat(a,n.lookahead(/\s*\?:/))}) ;return t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,d,p]), t.contains=t.contains.concat([c,r,i,p]), l(t,"shebang",e.SHEBANG()),l(t,"use_strict",{className:"meta",relevance:10, begin:/^\s*['"]use strict['"]/ -}),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{ +}),t.contains.find(e=>"func.def"===e.label).relevance=0,Object.assign(t,{ name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t},grmr_vala:e=>({ name:"Vala",keywords:{ keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var", @@ -1510,41 +1534,42 @@ className:"meta",begin://,contains:[s,r,o,i]}]}] relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{ -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +end:/<\/style>/,returnEnd:!0,subLanguage:"css"}},{className:"tag", begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{ -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ -className:"tag",begin:/<>|<\/>/},{className:"tag", +end:/<\/script>/,returnEnd:!0,subLanguage:"javascript"}},{className:"tag", +begin:/<>|<\/>/},{className:"tag", begin:n.concat(//,/>/,/\s/)))), end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:c}]},{ className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{ className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]} },grmr_yaml:e=>{ -const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={ +const n=e.regex,t="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}], contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{ -begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},s=e.inherit(a,{variants:[{ +begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},r=e.inherit(s,{variants:[{ begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{ -begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n, -relevance:0},i={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={ -begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},c=[{ +begin:/[^\s,{}[\]]+/}]}),i={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t, +relevance:0},o={begin:/\{/,end:/\}/,contains:[i],illegal:"\\n",relevance:0},c={ +begin:"\\[",end:"\\]",contains:[i],illegal:"\\n",relevance:0},l=[{ className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{ begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{ begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},{className:"meta", -begin:"^---\\s*$",relevance:10},{className:"string", -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, -relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type", -begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"^---\\s*$",relevance:10},{scope:"string", +begin:n.concat(/[\|>]/,/([1-9]?[+-])?/,/(?:[ ]*\n)+/,/( +)/,/[^ ][^\n]*\n/,n.anyNumberOfTimes(n.concat(n.anyNumberOfTimes(/[ ]*\n/),/\2[^\n]+\n?/))) +},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{ +className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{ +className:"type",begin:"!!"+a},{className:"meta", +begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{ className:"number", begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},i,o,{ +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},o,c,{ className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/, -scope:"char.escape",relevance:0}]},a],l=[...c] -;return l.pop(),l.push(s),r.contains=l,{name:"YAML",case_insensitive:!0, -aliases:["yml"],contains:c}}});const Ne=ae;for(const e of Object.keys(xe)){ -const n=e.replace("grmr_","").replace("_","-");Ne.registerLanguage(n,xe[e])} -return Ne}() +scope:"char.escape",relevance:0}]},s],d=[...l] +;return d.pop(),d.push(r),i.contains=d,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:l}}});const ke=ae;for(const e of Object.keys(Ne)){ +const n=e.replace("grmr_","").replace("_","-");ke.registerLanguage(n,Ne[e])} +return ke}() ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); \ No newline at end of file