mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +02:00
612 lines
17 KiB
JavaScript
612 lines
17 KiB
JavaScript
/*!-----------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Version: 0.52.0(f6dc0eb8fce67e57f6036f4769d92c1666cdf546)
|
|
* Released under the MIT license
|
|
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
|
*-----------------------------------------------------------------------------*/
|
|
define("vs/basic-languages/razor/razor", ["require"],(require)=>{
|
|
"use strict";
|
|
var moduleExports = (() => {
|
|
var __create = Object.create;
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __getProtoOf = Object.getPrototypeOf;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
}) : x)(function(x) {
|
|
if (typeof require !== "undefined")
|
|
return require.apply(this, arguments);
|
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
});
|
|
var __commonJS = (cb, mod) => function __require2() {
|
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
};
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
));
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
|
|
// src/fillers/monaco-editor-core-amd.ts
|
|
var require_monaco_editor_core_amd = __commonJS({
|
|
"src/fillers/monaco-editor-core-amd.ts"(exports, module) {
|
|
var api = __toESM(__require("vs/editor/editor.api"));
|
|
module.exports = api;
|
|
}
|
|
});
|
|
|
|
// src/basic-languages/razor/razor.ts
|
|
var razor_exports = {};
|
|
__export(razor_exports, {
|
|
conf: () => conf,
|
|
language: () => language
|
|
});
|
|
|
|
// src/fillers/monaco-editor-core.ts
|
|
var monaco_editor_core_exports = {};
|
|
__reExport(monaco_editor_core_exports, __toESM(require_monaco_editor_core_amd()));
|
|
|
|
// src/basic-languages/razor/razor.ts
|
|
var EMPTY_ELEMENTS = [
|
|
"area",
|
|
"base",
|
|
"br",
|
|
"col",
|
|
"embed",
|
|
"hr",
|
|
"img",
|
|
"input",
|
|
"keygen",
|
|
"link",
|
|
"menuitem",
|
|
"meta",
|
|
"param",
|
|
"source",
|
|
"track",
|
|
"wbr"
|
|
];
|
|
var conf = {
|
|
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,
|
|
comments: {
|
|
blockComment: ["<!--", "-->"]
|
|
},
|
|
brackets: [
|
|
["<!--", "-->"],
|
|
["<", ">"],
|
|
["{", "}"],
|
|
["(", ")"]
|
|
],
|
|
autoClosingPairs: [
|
|
{ open: "{", close: "}" },
|
|
{ open: "[", close: "]" },
|
|
{ open: "(", close: ")" },
|
|
{ open: '"', close: '"' },
|
|
{ open: "'", close: "'" }
|
|
],
|
|
surroundingPairs: [
|
|
{ open: '"', close: '"' },
|
|
{ open: "'", close: "'" },
|
|
{ open: "<", close: ">" }
|
|
],
|
|
onEnterRules: [
|
|
{
|
|
beforeText: new RegExp(
|
|
`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
|
|
"i"
|
|
),
|
|
afterText: /^<\/(\w[\w\d]*)\s*>$/i,
|
|
action: {
|
|
indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent
|
|
}
|
|
},
|
|
{
|
|
beforeText: new RegExp(
|
|
`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
|
|
"i"
|
|
),
|
|
action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }
|
|
}
|
|
]
|
|
};
|
|
var language = {
|
|
defaultToken: "",
|
|
tokenPostfix: "",
|
|
// ignoreCase: true,
|
|
// The main tokenizer for our languages
|
|
tokenizer: {
|
|
root: [
|
|
[/@@@@/],
|
|
// text
|
|
[/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.root" }],
|
|
[/<!DOCTYPE/, "metatag.html", "@doctype"],
|
|
[/<!--/, "comment.html", "@comment"],
|
|
[/(<)([\w\-]+)(\/>)/, ["delimiter.html", "tag.html", "delimiter.html"]],
|
|
[/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]],
|
|
[/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]],
|
|
[/(<)([:\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
|
|
[/(<\/)([\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
|
|
[/</, "delimiter.html"],
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[/[^<@]+/]
|
|
// text
|
|
],
|
|
doctype: [
|
|
[/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.comment" }],
|
|
[/[^>]+/, "metatag.content.html"],
|
|
[/>/, "metatag.html", "@pop"]
|
|
],
|
|
comment: [
|
|
[/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.comment" }],
|
|
[/-->/, "comment.html", "@pop"],
|
|
[/[^-]+/, "comment.content.html"],
|
|
[/./, "comment.content.html"]
|
|
],
|
|
otherTag: [
|
|
[/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.otherTag" }],
|
|
[/\/?>/, "delimiter.html", "@pop"],
|
|
[/"([^"]*)"/, "attribute.value"],
|
|
[/'([^']*)'/, "attribute.value"],
|
|
[/[\w\-]+/, "attribute.name"],
|
|
[/=/, "delimiter"],
|
|
[/[ \t\r\n]+/]
|
|
// whitespace
|
|
],
|
|
// -- BEGIN <script> tags handling
|
|
// After <script
|
|
script: [
|
|
[/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.script" }],
|
|
[/type/, "attribute.name", "@scriptAfterType"],
|
|
[/"([^"]*)"/, "attribute.value"],
|
|
[/'([^']*)'/, "attribute.value"],
|
|
[/[\w\-]+/, "attribute.name"],
|
|
[/=/, "delimiter"],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@scriptEmbedded.text/javascript",
|
|
nextEmbedded: "text/javascript"
|
|
}
|
|
],
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[
|
|
/(<\/)(script\s*)(>)/,
|
|
["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
|
|
]
|
|
],
|
|
// After <script ... type
|
|
scriptAfterType: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInSimpleState.scriptAfterType"
|
|
}
|
|
],
|
|
[/=/, "delimiter", "@scriptAfterTypeEquals"],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@scriptEmbedded.text/javascript",
|
|
nextEmbedded: "text/javascript"
|
|
}
|
|
],
|
|
// cover invalid e.g. <script type>
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
|
|
],
|
|
// After <script ... type =
|
|
scriptAfterTypeEquals: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInSimpleState.scriptAfterTypeEquals"
|
|
}
|
|
],
|
|
[
|
|
/"([^"]*)"/,
|
|
{
|
|
token: "attribute.value",
|
|
switchTo: "@scriptWithCustomType.$1"
|
|
}
|
|
],
|
|
[
|
|
/'([^']*)'/,
|
|
{
|
|
token: "attribute.value",
|
|
switchTo: "@scriptWithCustomType.$1"
|
|
}
|
|
],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@scriptEmbedded.text/javascript",
|
|
nextEmbedded: "text/javascript"
|
|
}
|
|
],
|
|
// cover invalid e.g. <script type=>
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
|
|
],
|
|
// After <script ... type = $S2
|
|
scriptWithCustomType: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInSimpleState.scriptWithCustomType.$S2"
|
|
}
|
|
],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@scriptEmbedded.$S2",
|
|
nextEmbedded: "$S2"
|
|
}
|
|
],
|
|
[/"([^"]*)"/, "attribute.value"],
|
|
[/'([^']*)'/, "attribute.value"],
|
|
[/[\w\-]+/, "attribute.name"],
|
|
[/=/, "delimiter"],
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
|
|
],
|
|
scriptEmbedded: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInEmbeddedState.scriptEmbedded.$S2",
|
|
nextEmbedded: "@pop"
|
|
}
|
|
],
|
|
[/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }]
|
|
],
|
|
// -- END <script> tags handling
|
|
// -- BEGIN <style> tags handling
|
|
// After <style
|
|
style: [
|
|
[/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.style" }],
|
|
[/type/, "attribute.name", "@styleAfterType"],
|
|
[/"([^"]*)"/, "attribute.value"],
|
|
[/'([^']*)'/, "attribute.value"],
|
|
[/[\w\-]+/, "attribute.name"],
|
|
[/=/, "delimiter"],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@styleEmbedded.text/css",
|
|
nextEmbedded: "text/css"
|
|
}
|
|
],
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[
|
|
/(<\/)(style\s*)(>)/,
|
|
["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
|
|
]
|
|
],
|
|
// After <style ... type
|
|
styleAfterType: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInSimpleState.styleAfterType"
|
|
}
|
|
],
|
|
[/=/, "delimiter", "@styleAfterTypeEquals"],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@styleEmbedded.text/css",
|
|
nextEmbedded: "text/css"
|
|
}
|
|
],
|
|
// cover invalid e.g. <style type>
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
|
|
],
|
|
// After <style ... type =
|
|
styleAfterTypeEquals: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInSimpleState.styleAfterTypeEquals"
|
|
}
|
|
],
|
|
[
|
|
/"([^"]*)"/,
|
|
{
|
|
token: "attribute.value",
|
|
switchTo: "@styleWithCustomType.$1"
|
|
}
|
|
],
|
|
[
|
|
/'([^']*)'/,
|
|
{
|
|
token: "attribute.value",
|
|
switchTo: "@styleWithCustomType.$1"
|
|
}
|
|
],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@styleEmbedded.text/css",
|
|
nextEmbedded: "text/css"
|
|
}
|
|
],
|
|
// cover invalid e.g. <style type=>
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
|
|
],
|
|
// After <style ... type = $S2
|
|
styleWithCustomType: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInSimpleState.styleWithCustomType.$S2"
|
|
}
|
|
],
|
|
[
|
|
/>/,
|
|
{
|
|
token: "delimiter.html",
|
|
next: "@styleEmbedded.$S2",
|
|
nextEmbedded: "$S2"
|
|
}
|
|
],
|
|
[/"([^"]*)"/, "attribute.value"],
|
|
[/'([^']*)'/, "attribute.value"],
|
|
[/[\w\-]+/, "attribute.name"],
|
|
[/=/, "delimiter"],
|
|
[/[ \t\r\n]+/],
|
|
// whitespace
|
|
[/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
|
|
],
|
|
styleEmbedded: [
|
|
[
|
|
/@[^@]/,
|
|
{
|
|
token: "@rematch",
|
|
switchTo: "@razorInEmbeddedState.styleEmbedded.$S2",
|
|
nextEmbedded: "@pop"
|
|
}
|
|
],
|
|
[/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }]
|
|
],
|
|
// -- END <style> tags handling
|
|
razorInSimpleState: [
|
|
[/@\*/, "comment.cs", "@razorBlockCommentTopLevel"],
|
|
[/@[{(]/, "metatag.cs", "@razorRootTopLevel"],
|
|
[/(@)(\s*[\w]+)/, ["metatag.cs", { token: "identifier.cs", switchTo: "@$S2.$S3" }]],
|
|
[/[})]/, { token: "metatag.cs", switchTo: "@$S2.$S3" }],
|
|
[/\*@/, { token: "comment.cs", switchTo: "@$S2.$S3" }]
|
|
],
|
|
razorInEmbeddedState: [
|
|
[/@\*/, "comment.cs", "@razorBlockCommentTopLevel"],
|
|
[/@[{(]/, "metatag.cs", "@razorRootTopLevel"],
|
|
[
|
|
/(@)(\s*[\w]+)/,
|
|
[
|
|
"metatag.cs",
|
|
{
|
|
token: "identifier.cs",
|
|
switchTo: "@$S2.$S3",
|
|
nextEmbedded: "$S3"
|
|
}
|
|
]
|
|
],
|
|
[
|
|
/[})]/,
|
|
{
|
|
token: "metatag.cs",
|
|
switchTo: "@$S2.$S3",
|
|
nextEmbedded: "$S3"
|
|
}
|
|
],
|
|
[
|
|
/\*@/,
|
|
{
|
|
token: "comment.cs",
|
|
switchTo: "@$S2.$S3",
|
|
nextEmbedded: "$S3"
|
|
}
|
|
]
|
|
],
|
|
razorBlockCommentTopLevel: [
|
|
[/\*@/, "@rematch", "@pop"],
|
|
[/[^*]+/, "comment.cs"],
|
|
[/./, "comment.cs"]
|
|
],
|
|
razorBlockComment: [
|
|
[/\*@/, "comment.cs", "@pop"],
|
|
[/[^*]+/, "comment.cs"],
|
|
[/./, "comment.cs"]
|
|
],
|
|
razorRootTopLevel: [
|
|
[/\{/, "delimiter.bracket.cs", "@razorRoot"],
|
|
[/\(/, "delimiter.parenthesis.cs", "@razorRoot"],
|
|
[/[})]/, "@rematch", "@pop"],
|
|
{ include: "razorCommon" }
|
|
],
|
|
razorRoot: [
|
|
[/\{/, "delimiter.bracket.cs", "@razorRoot"],
|
|
[/\(/, "delimiter.parenthesis.cs", "@razorRoot"],
|
|
[/\}/, "delimiter.bracket.cs", "@pop"],
|
|
[/\)/, "delimiter.parenthesis.cs", "@pop"],
|
|
{ include: "razorCommon" }
|
|
],
|
|
razorCommon: [
|
|
[
|
|
/[a-zA-Z_]\w*/,
|
|
{
|
|
cases: {
|
|
"@razorKeywords": { token: "keyword.cs" },
|
|
"@default": "identifier.cs"
|
|
}
|
|
}
|
|
],
|
|
// brackets
|
|
[/[\[\]]/, "delimiter.array.cs"],
|
|
// whitespace
|
|
[/[ \t\r\n]+/],
|
|
// comments
|
|
[/\/\/.*$/, "comment.cs"],
|
|
[/@\*/, "comment.cs", "@razorBlockComment"],
|
|
// strings
|
|
[/"([^"]*)"/, "string.cs"],
|
|
[/'([^']*)'/, "string.cs"],
|
|
// simple html
|
|
[/(<)([\w\-]+)(\/>)/, ["delimiter.html", "tag.html", "delimiter.html"]],
|
|
[/(<)([\w\-]+)(>)/, ["delimiter.html", "tag.html", "delimiter.html"]],
|
|
[/(<\/)([\w\-]+)(>)/, ["delimiter.html", "tag.html", "delimiter.html"]],
|
|
// delimiters
|
|
[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/, "delimiter.cs"],
|
|
// numbers
|
|
[/\d*\d+[eE]([\-+]?\d+)?/, "number.float.cs"],
|
|
[/\d*\.\d+([eE][\-+]?\d+)?/, "number.float.cs"],
|
|
[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, "number.hex.cs"],
|
|
[/0[0-7']*[0-7]/, "number.octal.cs"],
|
|
[/0[bB][0-1']*[0-1]/, "number.binary.cs"],
|
|
[/\d[\d']*/, "number.cs"],
|
|
[/\d/, "number.cs"]
|
|
]
|
|
},
|
|
razorKeywords: [
|
|
"abstract",
|
|
"as",
|
|
"async",
|
|
"await",
|
|
"base",
|
|
"bool",
|
|
"break",
|
|
"by",
|
|
"byte",
|
|
"case",
|
|
"catch",
|
|
"char",
|
|
"checked",
|
|
"class",
|
|
"const",
|
|
"continue",
|
|
"decimal",
|
|
"default",
|
|
"delegate",
|
|
"do",
|
|
"double",
|
|
"descending",
|
|
"explicit",
|
|
"event",
|
|
"extern",
|
|
"else",
|
|
"enum",
|
|
"false",
|
|
"finally",
|
|
"fixed",
|
|
"float",
|
|
"for",
|
|
"foreach",
|
|
"from",
|
|
"goto",
|
|
"group",
|
|
"if",
|
|
"implicit",
|
|
"in",
|
|
"int",
|
|
"interface",
|
|
"internal",
|
|
"into",
|
|
"is",
|
|
"lock",
|
|
"long",
|
|
"nameof",
|
|
"new",
|
|
"null",
|
|
"namespace",
|
|
"object",
|
|
"operator",
|
|
"out",
|
|
"override",
|
|
"orderby",
|
|
"params",
|
|
"private",
|
|
"protected",
|
|
"public",
|
|
"readonly",
|
|
"ref",
|
|
"return",
|
|
"switch",
|
|
"struct",
|
|
"sbyte",
|
|
"sealed",
|
|
"short",
|
|
"sizeof",
|
|
"stackalloc",
|
|
"static",
|
|
"string",
|
|
"select",
|
|
"this",
|
|
"throw",
|
|
"true",
|
|
"try",
|
|
"typeof",
|
|
"uint",
|
|
"ulong",
|
|
"unchecked",
|
|
"unsafe",
|
|
"ushort",
|
|
"using",
|
|
"var",
|
|
"virtual",
|
|
"volatile",
|
|
"void",
|
|
"when",
|
|
"while",
|
|
"where",
|
|
"yield",
|
|
"model",
|
|
"inject"
|
|
// Razor specific
|
|
],
|
|
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/
|
|
};
|
|
return __toCommonJS(razor_exports);
|
|
})();
|
|
return moduleExports;
|
|
});
|