yanzi-monaco-editorbb
Version:
这是一个基于微软的monaco和vue封装的一个代码编辑器,浏览器可运行。主要功能有:html、javascript、css代码编辑,高亮显示,语法错误提示等,可以帮您的项目很快的拥有一个web端的代码编辑器
380 lines (369 loc) • 13.8 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] || []).push([[60],{
/***/ "dcc7":
/***/ (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; });
/* harmony import */ var core_js_modules_es_regexp_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4d63");
/* harmony import */ var core_js_modules_es_regexp_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var core_js_modules_es_regexp_dot_all_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("c607");
/* harmony import */ var core_js_modules_es_regexp_dot_all_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_dot_all_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("ac1f");
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var core_js_modules_es_regexp_sticky_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("2c3e");
/* harmony import */ var core_js_modules_es_regexp_sticky_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_sticky_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("25f0");
/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4__);
/*!-----------------------------------------------------------------------------
* 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/ruby/ruby.ts
var conf = {
comments: {
lineComment: "#",
blockComment: ["=begin", "=end"]
},
brackets: [["(", ")"], ["{", "}"], ["[", "]"]],
autoClosingPairs: [{
open: "{",
close: "}"
}, {
open: "[",
close: "]"
}, {
open: "(",
close: ")"
}, {
open: '"',
close: '"'
}, {
open: "'",
close: "'"
}],
surroundingPairs: [{
open: "{",
close: "}"
}, {
open: "[",
close: "]"
}, {
open: "(",
close: ")"
}, {
open: '"',
close: '"'
}, {
open: "'",
close: "'"
}],
indentationRules: {
increaseIndentPattern: new RegExp("^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|/).*\\4)*(#.*)?$"),
decreaseIndentPattern: new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")
}
};
var language = {
tokenPostfix: ".ruby",
keywords: ["__LINE__", "__ENCODING__", "__FILE__", "BEGIN", "END", "alias", "and", "begin", "break", "case", "class", "def", "defined?", "do", "else", "elsif", "end", "ensure", "for", "false", "if", "in", "module", "next", "nil", "not", "or", "redo", "rescue", "retry", "return", "self", "super", "then", "true", "undef", "unless", "until", "when", "while", "yield"],
keywordops: ["::", "..", "...", "?", ":", "=>"],
builtins: ["require", "public", "private", "include", "extend", "attr_reader", "protected", "private_class_method", "protected_class_method", "new"],
declarations: ["module", "class", "def", "case", "do", "begin", "for", "if", "while", "until", "unless"],
linedecls: ["def", "case", "do", "begin", "for", "if", "while", "until", "unless"],
operators: ["^", "&", "|", "<=>", "==", "===", "!~", "=~", ">", ">=", "<", "<=", "<<", ">>", "+", "-", "*", "/", "%", "**", "~", "+@", "-@", "[]", "[]=", "`", "+=", "-=", "*=", "**=", "/=", "^=", "%=", "<<=", ">>=", "&=", "&&=", "||=", "|="],
brackets: [{
open: "(",
close: ")",
token: "delimiter.parenthesis"
}, {
open: "{",
close: "}",
token: "delimiter.curly"
}, {
open: "[",
close: "]",
token: "delimiter.square"
}],
symbols: /[=><!~?:&|+\-*\/\^%\.]+/,
escape: /(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,
escapes: /\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,
decpart: /\d(_?\d)*/,
decimal: /0|@decpart/,
delim: /[^a-zA-Z0-9\s\n\r]/,
heredelim: /(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,
regexpctl: /[(){}\[\]\$\^|\-*+?\.]/,
regexpesc: /\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,
tokenizer: {
root: [[/^(\s*)([a-z_]\w*[!?=]?)/, ["white", {
cases: {
"for|until|while": {
token: "keyword.$2",
next: "@dodecl.$2"
},
"@declarations": {
token: "keyword.$2",
next: "@root.$2"
},
end: {
token: "keyword.$S2",
next: "@pop"
},
"@keywords": "keyword",
"@builtins": "predefined",
"@default": "identifier"
}
}]], [/[a-z_]\w*[!?=]?/, {
cases: {
"if|unless|while|until": {
token: "keyword.$0x",
next: "@modifier.$0x"
},
for: {
token: "keyword.$2",
next: "@dodecl.$2"
},
"@linedecls": {
token: "keyword.$0",
next: "@root.$0"
},
end: {
token: "keyword.$S2",
next: "@pop"
},
"@keywords": "keyword",
"@builtins": "predefined",
"@default": "identifier"
}
}], [/[A-Z][\w]*[!?=]?/, "constructor.identifier"], [/\$[\w]*/, "global.constant"], [/@[\w]*/, "namespace.instance.identifier"], [/@@@[\w]*/, "namespace.class.identifier"], [/<<[-~](@heredelim).*/, {
token: "string.heredoc.delimiter",
next: "@heredoc.$1"
}], [/[ \t\r\n]+<<(@heredelim).*/, {
token: "string.heredoc.delimiter",
next: "@heredoc.$1"
}], [/^<<(@heredelim).*/, {
token: "string.heredoc.delimiter",
next: "@heredoc.$1"
}], {
include: "@whitespace"
}, [/"/, {
token: "string.d.delim",
next: '@dstring.d."'
}], [/'/, {
token: "string.sq.delim",
next: "@sstring.sq"
}], [/%([rsqxwW]|Q?)/, {
token: "@rematch",
next: "pstring"
}], [/`/, {
token: "string.x.delim",
next: "@dstring.x.`"
}], [/:(\w|[$@])\w*[!?=]?/, "string.s"], [/:"/, {
token: "string.s.delim",
next: '@dstring.s."'
}], [/:'/, {
token: "string.s.delim",
next: "@sstring.s"
}], [/\/(?=(\\\/|[^\/\n])+\/)/, {
token: "regexp.delim",
next: "@regexp"
}], [/[{}()\[\]]/, "@brackets"], [/@symbols/, {
cases: {
"@keywordops": "keyword",
"@operators": "operator",
"@default": ""
}
}], [/[;,]/, "delimiter"], [/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, "number.hex"], [/0[_oO][0-7](_?[0-7])*/, "number.octal"], [/0[bB][01](_?[01])*/, "number.binary"], [/0[dD]@decpart/, "number"], [/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/, {
cases: {
$1: "number.float",
"@default": "number"
}
}]],
dodecl: [[/^/, {
token: "",
switchTo: "@root.$S2"
}], [/[a-z_]\w*[!?=]?/, {
cases: {
end: {
token: "keyword.$S2",
next: "@pop"
},
do: {
token: "keyword",
switchTo: "@root.$S2"
},
"@linedecls": {
token: "@rematch",
switchTo: "@root.$S2"
},
"@keywords": "keyword",
"@builtins": "predefined",
"@default": "identifier"
}
}], {
include: "@root"
}],
modifier: [[/^/, "", "@pop"], [/[a-z_]\w*[!?=]?/, {
cases: {
end: {
token: "keyword.$S2",
next: "@pop"
},
"then|else|elsif|do": {
token: "keyword",
switchTo: "@root.$S2"
},
"@linedecls": {
token: "@rematch",
switchTo: "@root.$S2"
},
"@keywords": "keyword",
"@builtins": "predefined",
"@default": "identifier"
}
}], {
include: "@root"
}],
sstring: [[/[^\\']+/, "string.$S2"], [/\\\\|\\'|\\$/, "string.$S2.escape"], [/\\./, "string.$S2.invalid"], [/'/, {
token: "string.$S2.delim",
next: "@pop"
}]],
dstring: [[/[^\\`"#]+/, "string.$S2"], [/#/, "string.$S2.escape", "@interpolated"], [/\\$/, "string.$S2.escape"], [/@escapes/, "string.$S2.escape"], [/\\./, "string.$S2.escape.invalid"], [/[`"]/, {
cases: {
"$#==$S3": {
token: "string.$S2.delim",
next: "@pop"
},
"@default": "string.$S2"
}
}]],
heredoc: [[/^(\s*)(@heredelim)$/, {
cases: {
"$2==$S2": ["string.heredoc", {
token: "string.heredoc.delimiter",
next: "@pop"
}],
"@default": ["string.heredoc", "string.heredoc"]
}
}], [/.*/, "string.heredoc"]],
interpolated: [[/\$\w*/, "global.constant", "@pop"], [/@\w*/, "namespace.class.identifier", "@pop"], [/@@@\w*/, "namespace.instance.identifier", "@pop"], [/[{]/, {
token: "string.escape.curly",
switchTo: "@interpolated_compound"
}], ["", "", "@pop"]],
interpolated_compound: [[/[}]/, {
token: "string.escape.curly",
next: "@pop"
}], {
include: "@root"
}],
pregexp: [{
include: "@whitespace"
}, [/[^\(\{\[\\]/, {
cases: {
"$#==$S3": {
token: "regexp.delim",
next: "@pop"
},
"$#==$S2": {
token: "regexp.delim",
next: "@push"
},
"~[)}\\]]": "@brackets.regexp.escape.control",
"~@regexpctl": "regexp.escape.control",
"@default": "regexp"
}
}], {
include: "@regexcontrol"
}],
regexp: [{
include: "@regexcontrol"
}, [/[^\\\/]/, "regexp"], ["/[ixmp]*", {
token: "regexp.delim"
}, "@pop"]],
regexcontrol: [[/(\{)(\d+(?:,\d*)?)(\})/, ["@brackets.regexp.escape.control", "regexp.escape.control", "@brackets.regexp.escape.control"]], [/(\[)(\^?)/, ["@brackets.regexp.escape.control", {
token: "regexp.escape.control",
next: "@regexrange"
}]], [/(\()(\?[:=!])/, ["@brackets.regexp.escape.control", "regexp.escape.control"]], [/\(\?#/, {
token: "regexp.escape.control",
next: "@regexpcomment"
}], [/[()]/, "@brackets.regexp.escape.control"], [/@regexpctl/, "regexp.escape.control"], [/\\$/, "regexp.escape"], [/@regexpesc/, "regexp.escape"], [/\\\./, "regexp.invalid"], [/#/, "regexp.escape", "@interpolated"]],
regexrange: [[/-/, "regexp.escape.control"], [/\^/, "regexp.invalid"], [/\\$/, "regexp.escape"], [/@regexpesc/, "regexp.escape"], [/[^\]]/, "regexp"], [/\]/, "@brackets.regexp.escape.control", "@pop"]],
regexpcomment: [[/[^)]+/, "comment"], [/\)/, {
token: "regexp.escape.control",
next: "@pop"
}]],
pstring: [[/%([qws])\(/, {
token: "string.$1.delim",
switchTo: "@qstring.$1.(.)"
}], [/%([qws])\[/, {
token: "string.$1.delim",
switchTo: "@qstring.$1.[.]"
}], [/%([qws])\{/, {
token: "string.$1.delim",
switchTo: "@qstring.$1.{.}"
}], [/%([qws])</, {
token: "string.$1.delim",
switchTo: "@qstring.$1.<.>"
}], [/%([qws])(@delim)/, {
token: "string.$1.delim",
switchTo: "@qstring.$1.$2.$2"
}], [/%r\(/, {
token: "regexp.delim",
switchTo: "@pregexp.(.)"
}], [/%r\[/, {
token: "regexp.delim",
switchTo: "@pregexp.[.]"
}], [/%r\{/, {
token: "regexp.delim",
switchTo: "@pregexp.{.}"
}], [/%r</, {
token: "regexp.delim",
switchTo: "@pregexp.<.>"
}], [/%r(@delim)/, {
token: "regexp.delim",
switchTo: "@pregexp.$1.$1"
}], [/%(x|W|Q?)\(/, {
token: "string.$1.delim",
switchTo: "@qqstring.$1.(.)"
}], [/%(x|W|Q?)\[/, {
token: "string.$1.delim",
switchTo: "@qqstring.$1.[.]"
}], [/%(x|W|Q?)\{/, {
token: "string.$1.delim",
switchTo: "@qqstring.$1.{.}"
}], [/%(x|W|Q?)</, {
token: "string.$1.delim",
switchTo: "@qqstring.$1.<.>"
}], [/%(x|W|Q?)(@delim)/, {
token: "string.$1.delim",
switchTo: "@qqstring.$1.$2.$2"
}], [/%([rqwsxW]|Q?)./, {
token: "invalid",
next: "@pop"
}], [/./, {
token: "invalid",
next: "@pop"
}]],
qstring: [[/\\$/, "string.$S2.escape"], [/\\./, "string.$S2.escape"], [/./, {
cases: {
"$#==$S4": {
token: "string.$S2.delim",
next: "@pop"
},
"$#==$S3": {
token: "string.$S2.delim",
next: "@push"
},
"@default": "string.$S2"
}
}]],
qqstring: [[/#/, "string.$S2.escape", "@interpolated"], {
include: "@qstring"
}],
whitespace: [[/[ \t\r\n]+/, ""], [/^\s*=begin\b/, "comment", "@comment"], [/#.*$/, "comment"]],
comment: [[/[^=]+/, "comment"], [/^\s*=begin\b/, "comment.invalid"], [/^\s*=end\b.*/, "comment", "@pop"], [/[=]/, "comment"]]
}
};
/***/ })
}]);