securityos/node_modules/monaco-editor/esm/vs/basic-languages/xml/xml.js

110 lines
3.8 KiB
JavaScript

/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.36.1(6c56744c3419458f0dd48864520b759d1a3a1ca8)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
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"));
// src/fillers/monaco-editor-core.ts
var monaco_editor_core_exports = {};
__reExport(monaco_editor_core_exports, monaco_editor_core_star);
import * as monaco_editor_core_star from "../../editor/editor.api.js";
// src/basic-languages/xml/xml.ts
var conf = {
comments: {
blockComment: ["<!--", "-->"]
},
brackets: [["<", ">"]],
autoClosingPairs: [
{ open: "<", close: ">" },
{ open: "'", close: "'" },
{ open: '"', close: '"' }
],
surroundingPairs: [
{ open: "<", close: ">" },
{ open: "'", close: "'" },
{ open: '"', close: '"' }
],
onEnterRules: [
{
beforeText: new RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"),
afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i,
action: {
indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent
}
},
{
beforeText: new RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"),
action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }
}
]
};
var language = {
defaultToken: "",
tokenPostfix: ".xml",
ignoreCase: true,
qualifiedName: /(?:[\w\.\-]+:)?[\w\.\-]+/,
tokenizer: {
root: [
[/[^<&]+/, ""],
{ include: "@whitespace" },
[/(<)(@qualifiedName)/, [{ token: "delimiter" }, { token: "tag", next: "@tag" }]],
[
/(<\/)(@qualifiedName)(\s*)(>)/,
[{ token: "delimiter" }, { token: "tag" }, "", { token: "delimiter" }]
],
[/(<\?)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]],
[/(<\!)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]],
[/<\!\[CDATA\[/, { token: "delimiter.cdata", next: "@cdata" }],
[/&\w+;/, "string.escape"]
],
cdata: [
[/[^\]]+/, ""],
[/\]\]>/, { token: "delimiter.cdata", next: "@pop" }],
[/\]/, ""]
],
tag: [
[/[ \t\r\n]+/, ""],
[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/, ["attribute.name", "", "attribute.value"]],
[
/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,
["attribute.name", "", "attribute.value"]
],
[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/, ["attribute.name", "", "attribute.value"]],
[/@qualifiedName/, "attribute.name"],
[/\?>/, { token: "delimiter", next: "@pop" }],
[/(\/)(>)/, [{ token: "tag" }, { token: "delimiter", next: "@pop" }]],
[/>/, { token: "delimiter", next: "@pop" }]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[/<!--/, { token: "comment", next: "@comment" }]
],
comment: [
[/[^<\-]+/, "comment.content"],
[/-->/, { token: "comment", next: "@pop" }],
[/<!--/, "comment.content.invalid"],
[/[<\-]/, "comment.content"]
]
}
};
export {
conf,
language
};