diff options
Diffstat (limited to 'public/prism/prism-naniscript.min.js')
| -rw-r--r-- | public/prism/prism-naniscript.min.js | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/public/prism/prism-naniscript.min.js b/public/prism/prism-naniscript.min.js new file mode 100644 index 0000000..3bb28fa --- /dev/null +++ b/public/prism/prism-naniscript.min.js @@ -0,0 +1,103 @@ +!(function (e) { + var a = /\{[^\r\n\[\]{}]*\}/, + n = { + 'quoted-string': { pattern: /"(?:[^"\\]|\\.)*"/, alias: 'operator' }, + 'command-param-id': { + pattern: /(\s)\w+:/, + lookbehind: !0, + alias: 'property', + }, + 'command-param-value': [ + { pattern: a, alias: 'selector' }, + { + pattern: /([\t ])\S+/, + lookbehind: !0, + greedy: !0, + alias: 'operator', + }, + { pattern: /\S(?:.*\S)?/, alias: 'operator' }, + ], + }; + function t(e) { + return 'string' == typeof e + ? e + : Array.isArray(e) + ? e.map(t).join('') + : t(e.content); + } + (e.languages.naniscript = { + comment: { pattern: /^([\t ]*);.*/m, lookbehind: !0 }, + define: { + pattern: /^>.+/m, + alias: 'tag', + inside: { + value: { + pattern: /(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/, + lookbehind: !0, + alias: 'operator', + }, + key: { pattern: /(^>)\w+/, lookbehind: !0 }, + }, + }, + label: { + pattern: /^([\t ]*)#[\t ]*\w+[\t ]*$/m, + lookbehind: !0, + alias: 'regex', + }, + command: { + pattern: /^([\t ]*)@\w+(?=[\t ]|$).*/m, + lookbehind: !0, + alias: 'function', + inside: { + 'command-name': /^@\w+/, + expression: { pattern: a, greedy: !0, alias: 'selector' }, + 'command-params': { pattern: /\s*\S[\s\S]*/, inside: n }, + }, + }, + 'generic-text': { + pattern: /(^[ \t]*)[^#@>;\s].*/m, + lookbehind: !0, + alias: 'punctuation', + inside: { + 'escaped-char': /\\[{}\[\]"]/, + expression: { pattern: a, greedy: !0, alias: 'selector' }, + 'inline-command': { + pattern: /\[[\t ]*\w[^\r\n\[\]]*\]/, + greedy: !0, + alias: 'function', + inside: { + 'command-params': { + pattern: /(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/, + lookbehind: !0, + inside: n, + }, + 'command-param-name': { + pattern: /^(\[[\t ]*)\w+/, + lookbehind: !0, + alias: 'name', + }, + 'start-stop-char': /[\[\]]/, + }, + }, + }, + }, + }), + (e.languages.nani = e.languages.naniscript), + e.hooks.add('after-tokenize', function (e) { + e.tokens.forEach(function (e) { + if ('string' != typeof e && 'generic-text' === e.type) { + var a = t(e); + (function (e) { + for (var a = [], n = 0; n < e.length; n++) { + var t = e[n], + r = '[]{}'.indexOf(t); + if (-1 !== r) + if (r % 2 == 0) a.push(r + 1); + else if (a.pop() !== r) return !1; + } + return 0 === a.length; + })(a) || ((e.type = 'bad-line'), (e.content = a)); + } + }); + }); +})(Prism); |
