yanzi-monaco-editorbb
Version:
这是一个基于微软的monaco和vue封装的一个代码编辑器,浏览器可运行。主要功能有:html、javascript、css代码编辑,高亮显示,语法错误提示等,可以帮您的项目很快的拥有一个web端的代码编辑器
489 lines (478 loc) • 15.1 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] || []).push([[51],{
/***/ "a5a6":
/***/ (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/protobuf/protobuf.ts
var namedLiterals = ["true", "false"];
var conf = {
comments: {
lineComment: "//",
blockComment: ["/*", "*/"]
},
brackets: [["{", "}"], ["[", "]"], ["(", ")"], ["<", ">"]],
surroundingPairs: [{
open: "{",
close: "}"
}, {
open: "[",
close: "]"
}, {
open: "(",
close: ")"
}, {
open: "<",
close: ">"
}, {
open: '"',
close: '"'
}, {
open: "'",
close: "'"
}],
autoClosingPairs: [{
open: "{",
close: "}"
}, {
open: "[",
close: "]"
}, {
open: "(",
close: ")"
}, {
open: "<",
close: ">"
}, {
open: '"',
close: '"',
notIn: ["string"]
}, {
open: "'",
close: "'",
notIn: ["string"]
}],
autoCloseBefore: ".,=}])>' \n ",
indentationRules: {
increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),
decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")
}
};
var language = {
defaultToken: "",
tokenPostfix: ".proto",
brackets: [{
open: "{",
close: "}",
token: "delimiter.curly"
}, {
open: "[",
close: "]",
token: "delimiter.square"
}, {
open: "(",
close: ")",
token: "delimiter.parenthesis"
}, {
open: "<",
close: ">",
token: "delimiter.angle"
}],
symbols: /[=><!~?:&|+\-*/^%]+/,
keywords: ["syntax", "import", "weak", "public", "package", "option", "repeated", "oneof", "map", "reserved", "to", "max", "enum", "message", "service", "rpc", "stream", "returns", "package", "optional", "true", "false"],
builtinTypes: ["double", "float", "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "bool", "string", "bytes"],
operators: ["=", "+", "-"],
namedLiterals: namedLiterals,
escapes: "\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",
identifier: /[a-zA-Z]\w*/,
fullIdentifier: /@identifier(?:\s*\.\s*@identifier)*/,
optionName: /(?:@identifier|\(\s*@fullIdentifier\s*\))(?:\s*\.\s*@identifier)*/,
messageName: /@identifier/,
enumName: /@identifier/,
messageType: /\.?\s*(?:@identifier\s*\.\s*)*@messageName/,
enumType: /\.?\s*(?:@identifier\s*\.\s*)*@enumName/,
floatLit: /[0-9]+\s*\.\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\.[0-9]+(?:@exponent)?/,
exponent: /[eE]\s*[+-]?\s*[0-9]+/,
boolLit: /true\b|false\b/,
decimalLit: /[1-9][0-9]*/,
octalLit: /0[0-7]*/,
hexLit: /0[xX][0-9a-fA-F]+/,
type: /double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/,
keyType: /int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/,
tokenizer: {
root: [{
include: "@whitespace"
}, [/syntax/, "keyword"], [/=/, "operators"], [/;/, "delimiter"], [/(")(proto3)(")/, ["string.quote", "string", {
token: "string.quote",
switchTo: "@topLevel.proto3"
}]], [/(")(proto2)(")/, ["string.quote", "string", {
token: "string.quote",
switchTo: "@topLevel.proto2"
}]], [/.*?/, {
token: "",
switchTo: "@topLevel.proto2"
}]],
topLevel: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/=/, "operators"], [/[;.]/, "delimiter"], [/@fullIdentifier/, {
cases: {
option: {
token: "keyword",
next: "@option.$S2"
},
enum: {
token: "keyword",
next: "@enumDecl.$S2"
},
message: {
token: "keyword",
next: "@messageDecl.$S2"
},
service: {
token: "keyword",
next: "@serviceDecl.$S2"
},
extend: {
cases: {
"$S2==proto2": {
token: "keyword",
next: "@extendDecl.$S2"
}
}
},
"@keywords": "keyword",
"@default": "identifier"
}
}]],
enumDecl: [{
include: "@whitespace"
}, [/@identifier/, "type.identifier"], [/{/, {
token: "@brackets",
bracket: "@open",
switchTo: "@enumBody.$S2"
}]],
enumBody: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/=/, "operators"], [/;/, "delimiter"], [/option\b/, "keyword", "@option.$S2"], [/@identifier/, "identifier"], [/\[/, {
token: "@brackets",
bracket: "@open",
next: "@options.$S2"
}], [/}/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]],
messageDecl: [{
include: "@whitespace"
}, [/@identifier/, "type.identifier"], [/{/, {
token: "@brackets",
bracket: "@open",
switchTo: "@messageBody.$S2"
}]],
messageBody: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/=/, "operators"], [/;/, "delimiter"], ["(map)(s*)(<)", ["keyword", "white", {
token: "@brackets",
bracket: "@open",
next: "@map.$S2"
}]], [/@identifier/, {
cases: {
option: {
token: "keyword",
next: "@option.$S2"
},
enum: {
token: "keyword",
next: "@enumDecl.$S2"
},
message: {
token: "keyword",
next: "@messageDecl.$S2"
},
oneof: {
token: "keyword",
next: "@oneofDecl.$S2"
},
extensions: {
cases: {
"$S2==proto2": {
token: "keyword",
next: "@reserved.$S2"
}
}
},
reserved: {
token: "keyword",
next: "@reserved.$S2"
},
"(?:repeated|optional)": {
token: "keyword",
next: "@field.$S2"
},
required: {
cases: {
"$S2==proto2": {
token: "keyword",
next: "@field.$S2"
}
}
},
"$S2==proto3": {
token: "@rematch",
next: "@field.$S2"
}
}
}], [/\[/, {
token: "@brackets",
bracket: "@open",
next: "@options.$S2"
}], [/}/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]],
extendDecl: [{
include: "@whitespace"
}, [/@identifier/, "type.identifier"], [/{/, {
token: "@brackets",
bracket: "@open",
switchTo: "@extendBody.$S2"
}]],
extendBody: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/;/, "delimiter"], [/(?:repeated|optional|required)/, "keyword", "@field.$S2"], [/\[/, {
token: "@brackets",
bracket: "@open",
next: "@options.$S2"
}], [/}/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]],
options: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/;/, "delimiter"], [/@optionName/, "annotation"], [/[()]/, "annotation.brackets"], [/=/, "operator"], [/\]/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]],
option: [{
include: "@whitespace"
}, [/@optionName/, "annotation"], [/[()]/, "annotation.brackets"], [/=/, "operator", "@pop"]],
oneofDecl: [{
include: "@whitespace"
}, [/@identifier/, "identifier"], [/{/, {
token: "@brackets",
bracket: "@open",
switchTo: "@oneofBody.$S2"
}]],
oneofBody: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/;/, "delimiter"], [/(@identifier)(\s*)(=)/, ["identifier", "white", "delimiter"]], [/@fullIdentifier|\./, {
cases: {
"@builtinTypes": "keyword",
"@default": "type.identifier"
}
}], [/\[/, {
token: "@brackets",
bracket: "@open",
next: "@options.$S2"
}], [/}/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]],
reserved: [{
include: "@whitespace"
}, [/,/, "delimiter"], [/;/, "delimiter", "@pop"], {
include: "@constant"
}, [/to\b|max\b/, "keyword"]],
map: [{
include: "@whitespace"
}, [/@fullIdentifier|\./, {
cases: {
"@builtinTypes": "keyword",
"@default": "type.identifier"
}
}], [/,/, "delimiter"], [/>/, {
token: "@brackets",
bracket: "@close",
switchTo: "identifier"
}]],
field: [{
include: "@whitespace"
}, ["group", {
cases: {
"$S2==proto2": {
token: "keyword",
switchTo: "@groupDecl.$S2"
}
}
}], [/(@identifier)(\s*)(=)/, ["identifier", "white", {
token: "delimiter",
next: "@pop"
}]], [/@fullIdentifier|\./, {
cases: {
"@builtinTypes": "keyword",
"@default": "type.identifier"
}
}]],
groupDecl: [{
include: "@whitespace"
}, [/@identifier/, "identifier"], ["=", "operator"], [/{/, {
token: "@brackets",
bracket: "@open",
switchTo: "@messageBody.$S2"
}], {
include: "@constant"
}],
type: [{
include: "@whitespace"
}, [/@identifier/, "type.identifier", "@pop"], [/./, "delimiter"]],
identifier: [{
include: "@whitespace"
}, [/@identifier/, "identifier", "@pop"]],
serviceDecl: [{
include: "@whitespace"
}, [/@identifier/, "identifier"], [/{/, {
token: "@brackets",
bracket: "@open",
switchTo: "@serviceBody.$S2"
}]],
serviceBody: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/;/, "delimiter"], [/option\b/, "keyword", "@option.$S2"], [/rpc\b/, "keyword", "@rpc.$S2"], [/\[/, {
token: "@brackets",
bracket: "@open",
next: "@options.$S2"
}], [/}/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]],
rpc: [{
include: "@whitespace"
}, [/@identifier/, "identifier"], [/\(/, {
token: "@brackets",
bracket: "@open",
switchTo: "@request.$S2"
}], [/{/, {
token: "@brackets",
bracket: "@open",
next: "@methodOptions.$S2"
}], [/;/, "delimiter", "@pop"]],
request: [{
include: "@whitespace"
}, [/@messageType/, {
cases: {
stream: {
token: "keyword",
next: "@type.$S2"
},
"@default": "type.identifier"
}
}], [/\)/, {
token: "@brackets",
bracket: "@close",
switchTo: "@returns.$S2"
}]],
returns: [{
include: "@whitespace"
}, [/returns\b/, "keyword"], [/\(/, {
token: "@brackets",
bracket: "@open",
switchTo: "@response.$S2"
}]],
response: [{
include: "@whitespace"
}, [/@messageType/, {
cases: {
stream: {
token: "keyword",
next: "@type.$S2"
},
"@default": "type.identifier"
}
}], [/\)/, {
token: "@brackets",
bracket: "@close",
switchTo: "@rpc.$S2"
}]],
methodOptions: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/;/, "delimiter"], ["option", "keyword"], [/@optionName/, "annotation"], [/[()]/, "annotation.brackets"], [/=/, "operator"], [/}/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]],
comment: [[/[^\/*]+/, "comment"], [/\/\*/, "comment", "@push"], ["\\*/", "comment", "@pop"], [/[\/*]/, "comment"]],
string: [[/[^\\"]+/, "string"], [/@escapes/, "string.escape"], [/\\./, "string.escape.invalid"], [/"/, {
token: "string.quote",
bracket: "@close",
next: "@pop"
}]],
stringSingle: [[/[^\\']+/, "string"], [/@escapes/, "string.escape"], [/\\./, "string.escape.invalid"], [/'/, {
token: "string.quote",
bracket: "@close",
next: "@pop"
}]],
constant: [["@boolLit", "keyword.constant"], ["@hexLit", "number.hex"], ["@octalLit", "number.octal"], ["@decimalLit", "number"], ["@floatLit", "number.float"], [/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/, "string.invalid"], [/"/, {
token: "string.quote",
bracket: "@open",
next: "@string"
}], [/'/, {
token: "string.quote",
bracket: "@open",
next: "@stringSingle"
}], [/{/, {
token: "@brackets",
bracket: "@open",
next: "@prototext"
}], [/identifier/, "identifier"]],
whitespace: [[/[ \t\r\n]+/, "white"], [/\/\*/, "comment", "@comment"], [/\/\/.*$/, "comment"]],
prototext: [{
include: "@whitespace"
}, {
include: "@constant"
}, [/@identifier/, "identifier"], [/[:;]/, "delimiter"], [/}/, {
token: "@brackets",
bracket: "@close",
next: "@pop"
}]]
}
};
/***/ })
}]);