prism-code-editor
Version:
Lightweight, extensible code editor component for the web using Prism
72 lines (71 loc) • 2.95 kB
JavaScript
import { l as i, i as c } from "../prismCore-5c7f03d0.js";
import "./markup.js";
import "./csharp.js";
import "./clike.js";
var $ = /\/(?![/*])|\/\/.*[\r\n]|\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\//.source, v = `@(?!")|"(?:[^\\r\\n\\\\"]|\\\\.)*"|@"(?:[^\\\\"]|""|\\\\[\\s\\S])*"(?!")|'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))`;
function a(t, d) {
for (var p = 0; p < d; p++)
t = t.replace(/<self>/g, "(?:" + t + ")");
return t.replace(/<self>/g, "[^\\s\\S]").replace(/<str>/g, `(?:${v})`).replace(/<comment>/g, `(?:${$})`);
}
var r = a(/\((?:[^()'"@/]|<str>|<comment>|<self>)*\)/.source, 2), h = a(/\[(?:[^\[\]'"@/]|<str>|<comment>|<self>)*\]/.source, 1), e = a(/\{(?:[^{}'"@/]|<str>|<comment>|<self>)*\}/.source, 2), f = a(/<(?:[^<>'"@/]|<comment>|<self>)*>/.source, 1), u = `@(?:await\\b\\s*)?(?:(?!await\\b)\\w+\\b|${r})(?:[?!]?\\.\\w+\\b|(?:${f})?${r}|${h})*(?![?!\\.(\\[]|<(?!\\/))`, k = "@(?![\\w()])|" + u, g = `(?:"[^"@]*"|'[^'@]*'|[^\\s'"@>=]+(?=[\\s>])|["'][^"'@]*(?:(?:${k})[^"'@]*)+["'])`, o = `(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*${g}|(?=[\\s/>])))+)?`, n = `(?!\\d)[^\\s>\\/=$<%]+${o}\\s*\\/?>`, b = `\\B@?(?:<([a-zA-Z][\\w:]*)${o}\\s*>(?:[^<]|<\\/?(?!\\1\\b)${n}|${a(
`<\\1${o}\\s*>(?:[^<]|<\\/?(?!\\1\\b)${n}|<self>)*<\\/\\1\\s*>`,
2
)})*<\\/\\1\\s*>|<${n})`, s = i.razor = i.cshtml = i.extend("markup", {}), w = c("csharp", "string", {
html: {
pattern: RegExp(b),
greedy: !0,
inside: s
}
}, { csharp: i.extend("csharp", {}) }), l = {
pattern: /\S[\s\S]*/,
alias: "language-csharp",
inside: w
}, m = {
pattern: RegExp(/(^|[^@])/.source + u),
lookbehind: !0,
greedy: !0,
alias: "variable",
inside: {
keyword: /^@/,
csharp: l
}
}, y = s["markup-bracket"];
delete s["markup-bracket"];
s["markup-bracket"] = y;
s.tag.pattern = RegExp(/<\/?/.source + n);
s.tag.inside["attr-value"].pattern = RegExp(/=\s*/.source + g);
c("inside", "punctuation", { value: m }, s.tag.inside["attr-value"]);
c("cshtml", "prolog", {
"razor-comment": {
pattern: /@\*[\s\S]*?\*@/,
greedy: !0,
alias: "comment"
},
block: {
pattern: RegExp(
`(^|[^@])@(?:${e}|(?:code|functions)\\s*${e}|(?:for|foreach|lock|switch|using|while)\\s*${r}\\s*${e}|do\\s*${e}\\s*while\\s*${r}(?:\\s*;)?|try\\s*${e}\\s*catch\\s*${r}\\s*${e}\\s*finally\\s*${e}|if\\s*${r}\\s*${e}(?:\\s*else(?:\\s+if\\s*${r})?\\s*${e})*|helper\\s+\\w+\\s*${r}\\s*${e})`
),
lookbehind: !0,
greedy: !0,
inside: {
keyword: /^@\w*/,
csharp: l
}
},
directive: {
pattern: /^([ \t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\s).*/m,
lookbehind: !0,
greedy: !0,
inside: {
keyword: /^@\w+/,
csharp: l
}
},
value: m,
"delegate-operator": {
pattern: /(^|[^@])@(?=<)/,
lookbehind: !0,
alias: "operator"
}
});