@ryusei/light
Version:
<div align="center"> <a href="https://light.ryuseijs.com"> <img alt="RyuseiLight" src="https://light.ryuseijs.com/images/svg/logo.svg" width="70"> </a>
2 lines (1 loc) • 2.47 kB
JavaScript
!function(e,n){if("function"==typeof define&&define.amd)define([],n);else if("undefined"!=typeof exports)n();else{n(),e.unknown={}}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(){var e="keyword",n="comment",t="string",i="function",r="operator",a="delimiter";function o(e){return null!==e&&"object"==typeof e}function c(e){return void 0===e}function s(e,n){if(e)for(var t=Object.keys(e),i=0;i<t.length;i++)n(e[t[i]],t[i])}function f(e){for(var n=arguments.length,t=new Array(n>1?n-1:0),i=1;i<n;i++)t[i-1]=arguments[i];return t.forEach((function(n){o(n)&&s(n,(function(t,i){c(n[i])||(e[i]=n[i])}))})),e}function u(e,n,t){var i=function(e,n){for(var t=0;t<e.length;t++)if(e[t][0]===n)return t;return-1}(e,n);i>-1?e.splice.apply(e,[i,0].concat(t)):e.push.apply(e,t)}var l,d,p,b=/[+-]?(\d+\.?\d*|\d*\.?\d+)([eE][+-]?\d+)?/,y=/\b(?:true|false)\b/,m=/[[\]{}()]/,g=/[ \t]+/,w=/'(?:\\'|.)*?'/,h=/"(?:\\"|.)*?"/,F=/\/\*[\s\S]*?(\*\/|$)/,k=/\/\/.*/,$=/\b(?:break|catch|class|continue|do|else|extends|finally|for|function|if|implements|in|instanceof|interface|new|null|return|throw|try|while)\b/;"undefined"!=typeof window&&window.RyuseiLight&&window.RyuseiLight.register((l=f({id:"javascript",name:"JavaScript",alias:["js"],source:{func:/[_$a-z\xA0-\uFFFF][_$a-z0-9\xA0-\uFFFF]*/},grammar:{main:[[t,w],[t,h],["#backtick",/`/,"@rest"],[n,F],[n,k],["regexp",/\/(\[.*?]|\\\/|.)+?\/[gimsuy]*/],[e,$],[e,/\b(?:as|async|await|case|catch|const|debugger|default|delete|enum|export|from|import|let|package|private|protected|public|super|switch|static|this|typeof|undefined|var|void|with|yield)\b/],[e,/\b((get|set)(?=\s+%func))/i],["class",/\b[A-Z][\w$]*\b/],[i,/%func(?=\s*\()/i],["boolean",y],["decorator",/@[^\s(@]+/],["identifier",/\b[a-z_$][\w$]*\b/],["number",b],[r,/=>/],[r,/\+[+=]?|-[-=]?|\*\*?=?|[/%^]=?|&&?=?|\|\|?=?|\?\??=?|<<?=?|>>>=?|>>?=?|[!=]=?=?|[~:^]/],["bracket",m],[a,/[;.,]+/],["space",g]],backtick:[[t,/^`/],[t,/(\$[^{]|\\[$`]|[^`$])+/],["#expression",/\${/,"@rest"],[t,/`/,"@break"]],expression:[[a,/^\${/],[a,/}/,"@break"],["#main"]]}},{id:"typescript",name:"TypeScript",alias:["ts"]}),d=l.grammar,u(p=d.main,e,[[e,/\b(?:declare|keyof|namespace|readonly|type|string|number|boolean|bigint|symbol|object|any|never|unknown|infer|is)\b/]]),u(p,i,[["#functions",/([_$a-z\xA0-\uFFFF][_$a-z0-9\xA0-\uFFFF]*)?(?:<[^>]+?>)?\s*?\(/]]),f(d,{functions:[[i,/^[\w$]+/]].concat(p.filter((function(e){return"#functions"!==e[0]})))}),l))}));