yanzi-monaco-editorbb
Version:
这是一个基于微软的monaco和vue封装的一个代码编辑器,浏览器可运行。主要功能有:html、javascript、css代码编辑,高亮显示,语法错误提示等,可以帮您的项目很快的拥有一个web端的代码编辑器
194 lines (189 loc) • 8.15 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] || []).push([[74],{
/***/ "9cd5":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "conf", function() { return conf; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "language", function() { return language; });
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.32.1(29a273516805a852aa8edc5e05059f119b13eff0)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
// src/basic-languages/twig/twig.ts
var conf = {
wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,
comments: {
blockComment: ["{#", "#}"]
},
brackets: [["{#", "#}"], ["{%", "%}"], ["{{", "}}"], ["(", ")"], ["[", "]"], ["<!--", "-->"], ["<", ">"]],
autoClosingPairs: [{
open: "{# ",
close: " #}"
}, {
open: "{% ",
close: " %}"
}, {
open: "{{ ",
close: " }}"
}, {
open: "[",
close: "]"
}, {
open: "(",
close: ")"
}, {
open: '"',
close: '"'
}, {
open: "'",
close: "'"
}],
surroundingPairs: [{
open: '"',
close: '"'
}, {
open: "'",
close: "'"
}, {
open: "<",
close: ">"
}]
};
var language = {
defaultToken: "",
tokenPostfix: "",
ignoreCase: true,
keywords: ["apply", "autoescape", "block", "deprecated", "do", "embed", "extends", "flush", "for", "from", "if", "import", "include", "macro", "sandbox", "set", "use", "verbatim", "with", "endapply", "endautoescape", "endblock", "endembed", "endfor", "endif", "endmacro", "endsandbox", "endset", "endwith", "true", "false"],
tokenizer: {
root: [[/\s+/], [/{#/, "comment.twig", "@commentState"], [/{%[-~]?/, "delimiter.twig", "@blockState"], [/{{[-~]?/, "delimiter.twig", "@variableState"], [/<!DOCTYPE/, "metatag.html", "@doctype"], [/<!--/, "comment.html", "@comment"], [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ["delimiter.html", "tag.html", "", "delimiter.html"]], [/(<)(script)/, ["delimiter.html", {
token: "tag.html",
next: "@script"
}]], [/(<)(style)/, ["delimiter.html", {
token: "tag.html",
next: "@style"
}]], [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", {
token: "tag.html",
next: "@otherTag"
}]], [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", {
token: "tag.html",
next: "@otherTag"
}]], [/</, "delimiter.html"], [/[^<]+/]],
commentState: [[/#}/, "comment.twig", "@pop"], [/./, "comment.twig"]],
blockState: [[/[-~]?%}/, "delimiter.twig", "@pop"], [/\s+/], [/(verbatim)(\s*)([-~]?%})/, ["keyword.twig", "", {
token: "delimiter.twig",
next: "@rawDataState"
}]], {
include: "expression"
}],
rawDataState: [[/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/, ["delimiter.twig", "", "keyword.twig", "", {
token: "delimiter.twig",
next: "@popall"
}]], [/./, "string.twig"]],
variableState: [[/[-~]?}}/, "delimiter.twig", "@pop"], {
include: "expression"
}],
stringState: [[/"/, "string.twig", "@pop"], [/#{\s*/, "string.twig", "@interpolationState"], [/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/, "string.twig"]],
interpolationState: [[/}/, "string.twig", "@pop"], {
include: "expression"
}],
expression: [[/\s+/], [/\+|-|\/{1,2}|%|\*{1,2}/, "operators.twig"], [/(and|or|not|b-and|b-xor|b-or)(\s+)/, ["operators.twig", ""]], [/==|!=|<|>|>=|<=/, "operators.twig"], [/(starts with|ends with|matches)(\s+)/, ["operators.twig", ""]], [/(in)(\s+)/, ["operators.twig", ""]], [/(is)(\s+)/, ["operators.twig", ""]], [/\||~|:|\.{1,2}|\?{1,2}/, "operators.twig"], [/[^\W\d][\w]*/, {
cases: {
"@keywords": "keyword.twig",
"@default": "variable.twig"
}
}], [/\d+(\.\d+)?/, "number.twig"], [/\(|\)|\[|\]|{|}|,/, "delimiter.twig"], [/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/, "string.twig"], [/"/, "string.twig", "@stringState"], [/=>/, "operators.twig"], [/=/, "operators.twig"]],
doctype: [[/[^>]+/, "metatag.content.html"], [/>/, "metatag.html", "@pop"]],
comment: [[/-->/, "comment.html", "@pop"], [/[^-]+/, "comment.content.html"], [/./, "comment.content.html"]],
otherTag: [[/\/?>/, "delimiter.html", "@pop"], [/"([^"]*)"/, "attribute.value.html"], [/'([^']*)'/, "attribute.value.html"], [/[\w\-]+/, "attribute.name.html"], [/=/, "delimiter.html"], [/[ \t\r\n]+/]],
script: [[/type/, "attribute.name.html", "@scriptAfterType"], [/"([^"]*)"/, "attribute.value.html"], [/'([^']*)'/, "attribute.value.html"], [/[\w\-]+/, "attribute.name.html"], [/=/, "delimiter.html"], [/>/, {
token: "delimiter.html",
next: "@scriptEmbedded",
nextEmbedded: "text/javascript"
}], [/[ \t\r\n]+/], [/(<\/)(script\s*)(>)/, ["delimiter.html", "tag.html", {
token: "delimiter.html",
next: "@pop"
}]]],
scriptAfterType: [[/=/, "delimiter.html", "@scriptAfterTypeEquals"], [/>/, {
token: "delimiter.html",
next: "@scriptEmbedded",
nextEmbedded: "text/javascript"
}], [/[ \t\r\n]+/], [/<\/script\s*>/, {
token: "@rematch",
next: "@pop"
}]],
scriptAfterTypeEquals: [[/"([^"]*)"/, {
token: "attribute.value.html",
switchTo: "@scriptWithCustomType.$1"
}], [/'([^']*)'/, {
token: "attribute.value.html",
switchTo: "@scriptWithCustomType.$1"
}], [/>/, {
token: "delimiter.html",
next: "@scriptEmbedded",
nextEmbedded: "text/javascript"
}], [/[ \t\r\n]+/], [/<\/script\s*>/, {
token: "@rematch",
next: "@pop"
}]],
scriptWithCustomType: [[/>/, {
token: "delimiter.html",
next: "@scriptEmbedded.$S2",
nextEmbedded: "$S2"
}], [/"([^"]*)"/, "attribute.value.html"], [/'([^']*)'/, "attribute.value.html"], [/[\w\-]+/, "attribute.name.html"], [/=/, "delimiter.html"], [/[ \t\r\n]+/], [/<\/script\s*>/, {
token: "@rematch",
next: "@pop"
}]],
scriptEmbedded: [[/<\/script/, {
token: "@rematch",
next: "@pop",
nextEmbedded: "@pop"
}], [/[^<]+/, ""]],
style: [[/type/, "attribute.name.html", "@styleAfterType"], [/"([^"]*)"/, "attribute.value.html"], [/'([^']*)'/, "attribute.value.html"], [/[\w\-]+/, "attribute.name.html"], [/=/, "delimiter.html"], [/>/, {
token: "delimiter.html",
next: "@styleEmbedded",
nextEmbedded: "text/css"
}], [/[ \t\r\n]+/], [/(<\/)(style\s*)(>)/, ["delimiter.html", "tag.html", {
token: "delimiter.html",
next: "@pop"
}]]],
styleAfterType: [[/=/, "delimiter.html", "@styleAfterTypeEquals"], [/>/, {
token: "delimiter.html",
next: "@styleEmbedded",
nextEmbedded: "text/css"
}], [/[ \t\r\n]+/], [/<\/style\s*>/, {
token: "@rematch",
next: "@pop"
}]],
styleAfterTypeEquals: [[/"([^"]*)"/, {
token: "attribute.value.html",
switchTo: "@styleWithCustomType.$1"
}], [/'([^']*)'/, {
token: "attribute.value.html",
switchTo: "@styleWithCustomType.$1"
}], [/>/, {
token: "delimiter.html",
next: "@styleEmbedded",
nextEmbedded: "text/css"
}], [/[ \t\r\n]+/], [/<\/style\s*>/, {
token: "@rematch",
next: "@pop"
}]],
styleWithCustomType: [[/>/, {
token: "delimiter.html",
next: "@styleEmbedded.$S2",
nextEmbedded: "$S2"
}], [/"([^"]*)"/, "attribute.value.html"], [/'([^']*)'/, "attribute.value.html"], [/[\w\-]+/, "attribute.name.html"], [/=/, "delimiter.html"], [/[ \t\r\n]+/], [/<\/style\s*>/, {
token: "@rematch",
next: "@pop"
}]],
styleEmbedded: [[/<\/style/, {
token: "@rematch",
next: "@pop",
nextEmbedded: "@pop"
}], [/[^<]+/, ""]]
}
};
/***/ })
}]);