yanzi-monaco-editorbb
Version:
这是一个基于微软的monaco和vue封装的一个代码编辑器,浏览器可运行。主要功能有:html、javascript、css代码编辑,高亮显示,语法错误提示等,可以帮您的项目很快的拥有一个web端的代码编辑器
1,399 lines (1,093 loc) • 12.1 MB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ resolves.push(installedChunks[chunkId][0]);
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
/******/
/******/ };
/******/
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // Promise = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ 3: 0
/******/ };
/******/
/******/
/******/
/******/ // script path function
/******/ function jsonpScriptSrc(chunkId) {
/******/ return __webpack_require__.p + "yanziMonacoEditor.common." + ({}[chunkId]||chunkId) + ".js"
/******/ }
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // This file contains only the entry chunk.
/******/ // The chunk loading function for additional chunks
/******/ __webpack_require__.e = function requireEnsure(chunkId) {
/******/ var promises = [];
/******/
/******/
/******/ // JSONP chunk loading for javascript
/******/
/******/ var installedChunkData = installedChunks[chunkId];
/******/ if(installedChunkData !== 0) { // 0 means "already installed".
/******/
/******/ // a Promise means "currently loading".
/******/ if(installedChunkData) {
/******/ promises.push(installedChunkData[2]);
/******/ } else {
/******/ // setup Promise in chunk cache
/******/ var promise = new Promise(function(resolve, reject) {
/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
/******/ });
/******/ promises.push(installedChunkData[2] = promise);
/******/
/******/ // start chunk loading
/******/ var script = document.createElement('script');
/******/ var onScriptComplete;
/******/
/******/ script.charset = 'utf-8';
/******/ script.timeout = 120;
/******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ }
/******/ script.src = jsonpScriptSrc(chunkId);
/******/
/******/ // create error before stack unwound to get useful stacktrace later
/******/ var error = new Error();
/******/ onScriptComplete = function (event) {
/******/ // avoid mem leaks in IE.
/******/ script.onerror = script.onload = null;
/******/ clearTimeout(timeout);
/******/ var chunk = installedChunks[chunkId];
/******/ if(chunk !== 0) {
/******/ if(chunk) {
/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ var realSrc = event && event.target && event.target.src;
/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ error.name = 'ChunkLoadError';
/******/ error.type = errorType;
/******/ error.request = realSrc;
/******/ chunk[1](error);
/******/ }
/******/ installedChunks[chunkId] = undefined;
/******/ }
/******/ };
/******/ var timeout = setTimeout(function(){
/******/ onScriptComplete({ type: 'timeout', target: script });
/******/ }, 120000);
/******/ script.onerror = script.onload = onScriptComplete;
/******/ document.head.appendChild(script);
/******/ }
/******/ }
/******/ return Promise.all(promises);
/******/ };
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // on error function for async loading
/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ var jsonpArray = (typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpyanziMonacoEditor"] || [];
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ jsonpArray.push = webpackJsonpCallback;
/******/ jsonpArray = jsonpArray.slice();
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "fb15");
/******/ })
/************************************************************************/
/******/ ({
/***/ "00a3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return standardMouseMoveMerger; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GlobalMouseMoveMonitor; });
/* harmony import */ var _Users_hexiaochao_Downloads_yanzi_moncao_master_node_modules_babel_runtime_helpers_esm_createForOfIteratorHelper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("b85c");
/* harmony import */ var _Users_hexiaochao_Downloads_yanzi_moncao_master_node_modules_babel_runtime_helpers_esm_classCallCheck_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("d4ec");
/* harmony import */ var _Users_hexiaochao_Downloads_yanzi_moncao_master_node_modules_babel_runtime_helpers_esm_createClass_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("bee2");
/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("d81d");
/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _dom_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("11f7");
/* harmony import */ var _iframe_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("e757");
/* harmony import */ var _mouseEvent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("5d28");
/* harmony import */ var _common_lifecycle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("a666");
/* harmony import */ var _common_platform_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("30db");
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
function standardMouseMoveMerger(lastEvent, currentEvent) {
var ev = new _mouseEvent_js__WEBPACK_IMPORTED_MODULE_6__[/* StandardMouseEvent */ "a"](currentEvent);
ev.preventDefault();
return {
leftButton: ev.leftButton,
buttons: ev.buttons,
posx: ev.posx,
posy: ev.posy
};
}
var GlobalMouseMoveMonitor = /*#__PURE__*/function () {
function GlobalMouseMoveMonitor() {
Object(_Users_hexiaochao_Downloads_yanzi_moncao_master_node_modules_babel_runtime_helpers_esm_classCallCheck_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, GlobalMouseMoveMonitor);
this._hooks = new _common_lifecycle_js__WEBPACK_IMPORTED_MODULE_7__[/* DisposableStore */ "b"]();
this._mouseMoveEventMerger = null;
this._mouseMoveCallback = null;
this._onStopCallback = null;
}
Object(_Users_hexiaochao_Downloads_yanzi_moncao_master_node_modules_babel_runtime_helpers_esm_createClass_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(GlobalMouseMoveMonitor, [{
key: "dispose",
value: function dispose() {
this.stopMonitoring(false);
this._hooks.dispose();
}
}, {
key: "stopMonitoring",
value: function stopMonitoring(invokeStopCallback, browserEvent) {
if (!this.isMonitoring()) {
// Not monitoring
return;
} // Unhook
this._hooks.clear();
this._mouseMoveEventMerger = null;
this._mouseMoveCallback = null;
var onStopCallback = this._onStopCallback;
this._onStopCallback = null;
if (invokeStopCallback && onStopCallback) {
onStopCallback(browserEvent);
}
}
}, {
key: "isMonitoring",
value: function isMonitoring() {
return !!this._mouseMoveEventMerger;
}
}, {
key: "startMonitoring",
value: function startMonitoring(initialElement, initialButtons, mouseMoveEventMerger, mouseMoveCallback, onStopCallback) {
var _this = this;
if (this.isMonitoring()) {
// I am already hooked
return;
}
this._mouseMoveEventMerger = mouseMoveEventMerger;
this._mouseMoveCallback = mouseMoveCallback;
this._onStopCallback = onStopCallback;
var windowChain = _iframe_js__WEBPACK_IMPORTED_MODULE_5__[/* IframeUtils */ "a"].getSameOriginWindowChain();
var mouseMove = _common_platform_js__WEBPACK_IMPORTED_MODULE_8__[/* isIOS */ "f"] ? 'pointermove' : 'mousemove'; // Safari sends wrong event, workaround for #122653
var mouseUp = 'mouseup';
var listenTo = windowChain.map(function (element) {
return element.window.document;
});
var shadowRoot = _dom_js__WEBPACK_IMPORTED_MODULE_4__["getShadowRoot"](initialElement);
if (shadowRoot) {
listenTo.unshift(shadowRoot);
}
var _iterator = Object(_Users_hexiaochao_Downloads_yanzi_moncao_master_node_modules_babel_runtime_helpers_esm_createForOfIteratorHelper_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(listenTo),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var element = _step.value;
this._hooks.add(_dom_js__WEBPACK_IMPORTED_MODULE_4__["addDisposableThrottledListener"](element, mouseMove, function (data) {
if (data.buttons !== initialButtons) {
// Buttons state has changed in the meantime
_this.stopMonitoring(true);
return;
}
_this._mouseMoveCallback(data);
}, function (lastEvent, currentEvent) {
return _this._mouseMoveEventMerger(lastEvent, currentEvent);
}));
this._hooks.add(_dom_js__WEBPACK_IMPORTED_MODULE_4__["addDisposableListener"](element, mouseUp, function (e) {
return _this.stopMonitoring(true);
}));
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
if (_iframe_js__WEBPACK_IMPORTED_MODULE_5__[/* IframeUtils */ "a"].hasDifferentOriginAncestor()) {
var lastSameOriginAncestor = windowChain[windowChain.length - 1]; // We might miss a mouse up if it happens outside the iframe
// This one is for Chrome
this._hooks.add(_dom_js__WEBPACK_IMPORTED_MODULE_4__["addDisposableListener"](lastSameOriginAncestor.window.document, 'mouseout', function (browserEvent) {
var e = new _mouseEvent_js__WEBPACK_IMPORTED_MODULE_6__[/* StandardMouseEvent */ "a"](browserEvent);
if (e.target.tagName.toLowerCase() === 'html') {
_this.stopMonitoring(true);
}
})); // This one is for FF
this._hooks.add(_dom_js__WEBPACK_IMPORTED_MODULE_4__["addDisposableListener"](lastSameOriginAncestor.window.document, 'mouseover', function (browserEvent) {
var e = new _mouseEvent_js__WEBPACK_IMPORTED_MODULE_6__[/* StandardMouseEvent */ "a"](browserEvent);
if (e.target.tagName.toLowerCase() === 'html') {
_this.stopMonitoring(true);
}
})); // This one is for IE
this._hooks.add(_dom_js__WEBPACK_IMPORTED_MODULE_4__["addDisposableListener"](lastSameOriginAncestor.window.document.body, 'mouseleave', function (browserEvent) {
_this.stopMonitoring(true);
}));
}
}
}]);
return GlobalMouseMoveMonitor;
}();
/***/ }),
/***/ "00b4":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// TODO: Remove from `core-js@4` since it's moved to entry points
__webpack_require__("ac1f");
var $ = __webpack_require__("23e7");
var global = __webpack_require__("da84");
var call = __webpack_require__("c65b");
var uncurryThis = __webpack_require__("e330");
var isCallable = __webpack_require__("1626");
var isObject = __webpack_require__("861d");
var DELEGATES_TO_EXEC = function () {
var execCalled = false;
var re = /[ac]/;
re.exec = function () {
execCalled = true;
return /./.exec.apply(this, arguments);
};
return re.test('abc') === true && execCalled;
}();
var Error = global.Error;
var un$Test = uncurryThis(/./.test);
// `RegExp.prototype.test` method
// https://tc39.es/ecma262/#sec-regexp.prototype.test
$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
test: function (str) {
var exec = this.exec;
if (!isCallable(exec)) return un$Test(this, str);
var result = call(exec, this, str);
if (result !== null && !isObject(result)) {
throw new Error('RegExp exec method returned something other than an Object or null');
}
return !!result;
}
});
/***/ }),
/***/ "00ee":
/***/ (function(module, exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__("b622");
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var test = {};
test[TO_STRING_TAG] = 'z';
module.exports = String(test) === '[object z]';
/***/ }),
/***/ "0184":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ILanguageConfigurationService; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ LanguageConfigurationRegistry; });
// UNUSED EXPORTS: LanguageConfigurationServiceChangeEvent, LanguageConfigurationService, LanguageConfigurationChangeEvent, LanguageConfigurationRegistryImpl, ResolvedLanguageConfiguration
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js
var createForOfIteratorHelper = __webpack_require__("b85c");
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
var slicedToArray = __webpack_require__("3835");
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
var inherits = __webpack_require__("262e");
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createSuper.js + 1 modules
var createSuper = __webpack_require__("2caf");
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__("d4ec");
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__("bee2");
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
var esm_typeof = __webpack_require__("53ca");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js
var es_object_get_own_property_descriptor = __webpack_require__("e439");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
var es_object_to_string = __webpack_require__("d3b7");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.reflect.to-string-tag.js
var es_reflect_to_string_tag = __webpack_require__("f8c9");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
var es_array_iterator = __webpack_require__("e260");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.js
var es_map = __webpack_require__("4ec9");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
var es_string_iterator = __webpack_require__("3ca3");
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
var web_dom_collections_iterator = __webpack_require__("ddb0");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.js
var es_set = __webpack_require__("6062");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.values.js
var es_object_values = __webpack_require__("07ac");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js
var es_array_map = __webpack_require__("d81d");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js
var es_array_filter = __webpack_require__("4de4");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.error.cause.js
var es_error_cause = __webpack_require__("d9e2");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js
var es_regexp_exec = __webpack_require__("ac1f");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.test.js
var es_regexp_test = __webpack_require__("00b4");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js
var es_array_splice = __webpack_require__("a434");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.sort.js
var es_array_sort = __webpack_require__("4e82");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/base/common/event.js
var common_event = __webpack_require__("308f");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/base/common/lifecycle.js
var lifecycle = __webpack_require__("a666");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/base/common/strings.js + 1 modules
var strings = __webpack_require__("3742");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/core/wordHelper.js
var wordHelper = __webpack_require__("879b");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/languageConfiguration.js
var languageConfiguration = __webpack_require__("3d70");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/supports.js
var supports = __webpack_require__("a758");
// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/characterPair.js
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
var characterPair_CharacterPairSupport = /*#__PURE__*/function () {
function CharacterPairSupport(config) {
Object(classCallCheck["a" /* default */])(this, CharacterPairSupport);
if (config.autoClosingPairs) {
this._autoClosingPairs = config.autoClosingPairs.map(function (el) {
return new languageConfiguration["c" /* StandardAutoClosingPairConditional */](el);
});
} else if (config.brackets) {
this._autoClosingPairs = config.brackets.map(function (b) {
return new languageConfiguration["c" /* StandardAutoClosingPairConditional */]({
open: b[0],
close: b[1]
});
});
} else {
this._autoClosingPairs = [];
}
if (config.colorizedBracketPairs) {
this._colorizedBracketPairs = filterValidBrackets(config.colorizedBracketPairs.map(function (b) {
return [b[0], b[1]];
}));
} else if (config.brackets) {
this._colorizedBracketPairs = filterValidBrackets(config.brackets.map(function (b) {
return [b[0], b[1]];
}) // Many languages set < ... > as bracket pair, even though they also use it as comparison operator.
// This leads to problems when colorizing this bracket, so we exclude it by default.
// Languages can still override this by configuring `colorizedBracketPairs`
// https://github.com/microsoft/vscode/issues/132476
.filter(function (p) {
return !(p[0] === '<' && p[1] === '>');
}));
} else {
this._colorizedBracketPairs = [];
}
if (config.__electricCharacterSupport && config.__electricCharacterSupport.docComment) {
var docComment = config.__electricCharacterSupport.docComment; // IDocComment is legacy, only partially supported
this._autoClosingPairs.push(new languageConfiguration["c" /* StandardAutoClosingPairConditional */]({
open: docComment.open,
close: docComment.close || ''
}));
}
this._autoCloseBefore = typeof config.autoCloseBefore === 'string' ? config.autoCloseBefore : CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED;
this._surroundingPairs = config.surroundingPairs || this._autoClosingPairs;
}
Object(createClass["a" /* default */])(CharacterPairSupport, [{
key: "getAutoClosingPairs",
value: function getAutoClosingPairs() {
return this._autoClosingPairs;
}
}, {
key: "getAutoCloseBeforeSet",
value: function getAutoCloseBeforeSet() {
return this._autoCloseBefore;
}
}, {
key: "getSurroundingPairs",
value: function getSurroundingPairs() {
return this._surroundingPairs;
}
}, {
key: "getColorizedBrackets",
value: function getColorizedBrackets() {
return this._colorizedBracketPairs;
}
}]);
return CharacterPairSupport;
}();
characterPair_CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED = ';:.,=}])> \n\t';
function filterValidBrackets(bracketPairs) {
return bracketPairs.filter(function (_ref) {
var _ref2 = Object(slicedToArray["a" /* default */])(_ref, 2),
open = _ref2[0],
close = _ref2[1];
return open !== '' && close !== '';
});
}
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/base/common/arrays.js
var arrays = __webpack_require__("e8e3");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/richEditBrackets.js
var supports_richEditBrackets = __webpack_require__("83fe");
// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/electricCharacter.js
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
var electricCharacter_BracketElectricCharacterSupport = /*#__PURE__*/function () {
function BracketElectricCharacterSupport(richEditBrackets) {
Object(classCallCheck["a" /* default */])(this, BracketElectricCharacterSupport);
this._richEditBrackets = richEditBrackets;
}
Object(createClass["a" /* default */])(BracketElectricCharacterSupport, [{
key: "getElectricCharacters",
value: function getElectricCharacters() {
var result = [];
if (this._richEditBrackets) {
var _iterator = Object(createForOfIteratorHelper["a" /* default */])(this._richEditBrackets.brackets),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var bracket = _step.value;
var _iterator2 = Object(createForOfIteratorHelper["a" /* default */])(bracket.close),
_step2;
try {
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
var close = _step2.value;
var lastChar = close.charAt(close.length - 1);
result.push(lastChar);
}
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
return Object(arrays["g" /* distinct */])(result);
}
}, {
key: "onElectricCharacter",
value: function onElectricCharacter(character, context, column) {
if (!this._richEditBrackets || this._richEditBrackets.brackets.length === 0) {
return null;
}
var tokenIndex = context.findTokenIndexAtOffset(column - 1);
if (Object(supports["b" /* ignoreBracketsInToken */])(context.getStandardTokenType(tokenIndex))) {
return null;
}
var reversedBracketRegex = this._richEditBrackets.reversedRegex;
var text = context.getLineContent().substring(0, column - 1) + character;
var r = supports_richEditBrackets["a" /* BracketsUtils */].findPrevBracketInRange(reversedBracketRegex, 1, text, 0, text.length);
if (!r) {
return null;
}
var bracketText = text.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();
var isOpen = this._richEditBrackets.textIsOpenBracket[bracketText];
if (isOpen) {
return null;
}
var textBeforeBracket = context.getActualLineContentBefore(r.startColumn - 1);
if (!/^\s*$/.test(textBeforeBracket)) {
// There is other text on the line before the bracket
return null;
}
return {
matchOpenBracket: bracketText
};
}
}]);
return BracketElectricCharacterSupport;
}();
// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentRules.js
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
function resetGlobalRegex(reg) {
if (reg.global) {
reg.lastIndex = 0;
}
return true;
}
var indentRules_IndentRulesSupport = /*#__PURE__*/function () {
function IndentRulesSupport(indentationRules) {
Object(classCallCheck["a" /* default */])(this, IndentRulesSupport);
this._indentationRules = indentationRules;
}
Object(createClass["a" /* default */])(IndentRulesSupport, [{
key: "shouldIncrease",
value: function shouldIncrease(text) {
if (this._indentationRules) {
if (this._indentationRules.increaseIndentPattern && resetGlobalRegex(this._indentationRules.increaseIndentPattern) && this._indentationRules.increaseIndentPattern.test(text)) {
return true;
} // if (this._indentationRules.indentNextLinePattern && this._indentationRules.indentNextLinePattern.test(text)) {
// return true;
// }
}
return false;
}
}, {
key: "shouldDecrease",
value: function shouldDecrease(text) {
if (this._indentationRules && this._indentationRules.decreaseIndentPattern && resetGlobalRegex(this._indentationRules.decreaseIndentPattern) && this._indentationRules.decreaseIndentPattern.test(text)) {
return true;
}
return false;
}
}, {
key: "shouldIndentNextLine",
value: function shouldIndentNextLine(text) {
if (this._indentationRules && this._indentationRules.indentNextLinePattern && resetGlobalRegex(this._indentationRules.indentNextLinePattern) && this._indentationRules.indentNextLinePattern.test(text)) {
return true;
}
return false;
}
}, {
key: "shouldIgnore",
value: function shouldIgnore(text) {
// the text matches `unIndentedLinePattern`
if (this._indentationRules && this._indentationRules.unIndentedLinePattern && resetGlobalRegex(this._indentationRules.unIndentedLinePattern) && this._indentationRules.unIndentedLinePattern.test(text)) {
return true;
}
return false;
}
}, {
key: "getIndentMetadata",
value: function getIndentMetadata(text) {
var ret = 0;
if (this.shouldIncrease(text)) {
ret += 1
/* INCREASE_MASK */
;
}
if (this.shouldDecrease(text)) {
ret += 2
/* DECREASE_MASK */
;
}
if (this.shouldIndentNextLine(text)) {
ret += 4
/* INDENT_NEXTLINE_MASK */
;
}
if (this.shouldIgnore(text)) {
ret += 8
/* UNINDENT_MASK */
;
}
return ret;
}
}]);
return IndentRulesSupport;
}();
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js
var web_dom_collections_for_each = __webpack_require__("159b");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.constructor.js
var es_regexp_constructor = __webpack_require__("4d63");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.dot-all.js
var es_regexp_dot_all = __webpack_require__("c607");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.sticky.js
var es_regexp_sticky = __webpack_require__("2c3e");
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js
var es_regexp_to_string = __webpack_require__("25f0");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/base/common/errors.js
var errors = __webpack_require__("fdcc");
// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/onEnter.js
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
var onEnter_OnEnterSupport = /*#__PURE__*/function () {
function OnEnterSupport(opts) {
var _this = this;
Object(classCallCheck["a" /* default */])(this, OnEnterSupport);
opts = opts || {};
opts.brackets = opts.brackets || [['(', ')'], ['{', '}'], ['[', ']']];
this._brackets = [];
opts.brackets.forEach(function (bracket) {
var openRegExp = OnEnterSupport._createOpenBracketRegExp(bracket[0]);
var closeRegExp = OnEnterSupport._createCloseBracketRegExp(bracket[1]);
if (openRegExp && closeRegExp) {
_this._brackets.push({
open: bracket[0],
openRegExp: openRegExp,
close: bracket[1],
closeRegExp: closeRegExp
});
}
});
this._regExpRules = opts.onEnterRules || [];
}
Object(createClass["a" /* default */])(OnEnterSupport, [{
key: "onEnter",
value: function onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {
// (1): `regExpRules`
if (autoIndent >= 3
/* Advanced */
) {
for (var i = 0, len = this._regExpRules.length; i < len; i++) {
var rule = this._regExpRules[i];
var regResult = [{
reg: rule.beforeText,
text: beforeEnterText
}, {
reg: rule.afterText,
text: afterEnterText
}, {
reg: rule.previousLineText,
text: previousLineText
}].every(function (obj) {
if (!obj.reg) {
return true;
}
obj.reg.lastIndex = 0; // To disable the effect of the "g" flag.
return obj.reg.test(obj.text);
});
if (regResult) {
return rule.action;
}
}
} // (2): Special indent-outdent
if (autoIndent >= 2
/* Brackets */
) {
if (beforeEnterText.length > 0 && afterEnterText.length > 0) {
for (var _i = 0, _len = this._brackets.length; _i < _len; _i++) {
var bracket = this._brackets[_i];
if (bracket.openRegExp.test(beforeEnterText) && bracket.closeRegExp.test(afterEnterText)) {
return {
indentAction: languageConfiguration["b" /* IndentAction */].IndentOutdent
};
}
}
}
} // (4): Open bracket based logic
if (autoIndent >= 2
/* Brackets */
) {
if (beforeEnterText.length > 0) {
for (var _i2 = 0, _len2 = this._brackets.length; _i2 < _len2; _i2++) {
var _bracket = this._brackets[_i2];
if (_bracket.openRegExp.test(beforeEnterText)) {
return {
indentAction: languageConfiguration["b" /* IndentAction */].Indent
};
}
}
}
}
return null;
}
}], [{
key: "_createOpenBracketRegExp",
value: function _createOpenBracketRegExp(bracket) {
var str = strings["t" /* escapeRegExpCharacters */](bracket);
if (!/\B/.test(str.charAt(0))) {
str = '\\b' + str;
}
str += '\\s*$';
return OnEnterSupport._safeRegExp(str);
}
}, {
key: "_createCloseBracketRegExp",
value: function _createCloseBracketRegExp(bracket) {
var str = strings["t" /* escapeRegExpCharacters */](bracket);
if (!/\B/.test(str.charAt(str.length - 1))) {
str = str + '\\b';
}
str = '^\\s*' + str;
return OnEnterSupport._safeRegExp(str);
}
}, {
key: "_safeRegExp",
value: function _safeRegExp(def) {
try {
return new RegExp(def);
} catch (err) {
Object(errors["g" /* onUnexpectedError */])(err);
return null;
}
}
}]);
return OnEnterSupport;
}();
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiation.js
var instantiation = __webpack_require__("0a0f");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/platform/configuration/common/configuration.js
var common_configuration = __webpack_require__("fbba");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/services/language.js
var language = __webpack_require__("8c92");
// EXTERNAL MODULE: ./node_modules/monaco-editor/esm/vs/platform/instantiation/common/extensions.js
var extensions = __webpack_require__("f5f3");
// CONCATENATED MODULE: ./node_modules/monaco-editor/esm/vs/editor/common/languages/languageConfigurationRegistry.js
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
var c = arguments.length,
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
d;
if ((typeof Reflect === "undefined" ? "undefined" : Object(esm_typeof["a" /* default */])(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
}
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __param = undefined && undefined.__param || function (paramIndex, decorator) {
return function (target, key) {
decorator(target, key, paramIndex);
};
};
var languageConfigurationRegistry_LanguageConfigurationServiceChangeEvent = /*#__PURE__*/function () {
function LanguageConfigurationServiceChangeEvent(languageId) {
Object(classCallCheck["a" /* default */])(this, LanguageConfigurationServiceChangeEvent);
this.languageId = languageId;
}
Object(createClass["a" /* default */])(LanguageConfigurationServiceChangeEvent, [{
key: "affects",
value: function affects(languageId) {
return !this.languageId ? true : this.languageId === languageId;
}
}]);
return LanguageConfigurationServiceChangeEvent;
}();
var ILanguageConfigurationService = Object(instantiation["c" /* createDecorator */])('languageConfigurationService');
var languageConfigurationRegistry_LanguageConfigurationService = /*#__PURE__*/function (_Disposable) {
Object(inherits["a" /* default */])(LanguageConfigurationService, _Disposable);
var _super = Object(createSuper["a" /* default */])(LanguageConfigurationService);
function LanguageConfigurationService(configurationService, languageService) {
var _this;
Object(classCallCheck["a" /* default */])(this, LanguageConfigurationService);
_this = _super.call(this);
_this.configurationService = configurationService;
_this.languageService = languageService;
_this.onDidChangeEmitter = _this._register(new common_event["b" /* Emitter */]());
_this.onDidChange = _this.onDidChangeEmitter.event;
_this.configurations = new Map();
var languageConfigKeys = new Set(Object.values(customizedLanguageConfigKeys));
_this._register(_this.configurationService.onDidChangeConfiguration(function (e) {
var globalConfigChanged = e.change.keys.some(function (k) {
return languageConfigKeys.has(k);
});
var localConfigChanged = e.change.overrides.filter(function (_ref) {
var _ref2 = Object(slicedToArray["a" /* default */])(_ref, 2),
overrideLangName = _ref2[0],
keys = _ref2[1];
return keys.some(function (k) {
return languageConfigKeys.has(k);
});
}).map(function (_ref3) {
var _ref4 = Object(slicedToArray["a" /* default */])(_ref3, 1),
overrideLangName = _ref4[0];
return overrideLangName;
});
if (globalConfigChanged) {
_this.configurations.clear();
_this.onDidChangeEmitter.fire(new languageConfigurationRegistry_LanguageConfigurationServiceChangeEvent(undefined));
} else {
var _iterator = Object(createForOfIteratorHelper["a" /* default */])(localConfigChanged),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var languageId = _step.value;
if (_this.languageService.isRegisteredLanguageId(languageId)) {
_this.configurations.delete(languageId);
_this.onDidChangeEmitter.fire(new languageConfigurationRegistry_LanguageConfigurationServiceChangeEvent(languageId));
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
}));
_this._register(LanguageConfigurationRegistry.onDidChange(function (e) {
_this.configurations.delete(e.languageId);
_this.onDidChangeEmitter.fire(new languageConfigurationRegistry_LanguageConfigurationServiceChangeEvent(e.languageId));
}));
return _this;
}
Object(createClass["a" /* default */])(LanguageConfigurationService, [{
key: "getLanguageConfiguration",
value: function getLanguageConfiguration(languageId) {
var result = this.configurations.get(languageId);
if (!result) {
result = computeConfig(languageId, this.configurationService, this.languageService);
this.configurations.set(languageId, result);
}
return result;
}
}]);
return LanguageConfigurationService;
}(lifecycle["a" /* Disposable */]);
languageConfigurationRegistry_LanguageConfigurationService = __decorate([__param(0, common_configuration["a" /* IConfigurationService */]), __param(1, language["a" /* ILanguageService */])], languageConfigurationRegistry_LanguageConfigurationService);
function computeConfig(languageId, configurationService, languageService) {
var languageConfig = LanguageConfigurationRegistry.getLanguageConfiguration(languageId);
if (!languageConfig) {
if (!languageService.isRegisteredLanguageId(languageId)) {
throw new Error('Unexpected languageId');
}
languageConfig = new languageConfigurationRegistry_ResolvedLanguageConfiguration(languageId, {});
}
var customizedConfig = getCustomizedLanguageConfig(languageConfig.languageId, configurationService);
var data = combineLanguageConfigurations([languageConfig.underlyingConfig, customizedConfig]);
var config = new languageConfigurationRegistry_ResolvedLanguageConfiguration(languageConfig.languageId, data);
return config;
}
var customizedLanguageConfigKeys = {
brackets: 'editor.language.brackets',
colorizedBracketPairs: 'editor.language.colorizedBracketPairs'
};
function getCustomizedLanguageConfig(languageId, configurationService) {
var brackets = configurationService.getValue(customizedLanguageConfigKeys.brackets, {
overrideIdentifier: languageId
});
var colorizedBracketPairs = configurationService.getValue(customizedLanguageConfigKeys.colorizedBracketPairs, {
overrideIdentifier: languageId
});
return {
brackets: validateBracketPairs(brackets),
colorizedBracketPairs: validateBracketPairs(colorizedBracketPairs)
};
}
function validateBracketPairs(data) {
if (!Array.isArray(data)) {
return undefined;
}
return data.map(function (pair) {
if (!Array.isArray(pair) || pair.length !== 2) {
return undefined;
}
return [pair[0], pair[1]];
}).filter(function (p) {
return !!p;
});
}
var languageConfigurationRegistry_LanguageConfigurationChangeEvent = /*#__PURE__*/Object(createClass["a" /* default */])(function LanguageConfigurationChangeEvent(languageId) {
Object(classCallCheck["a" /* default */])(this, LanguageConfigurationChangeEvent);
this.languageId = languageId;
});
var languageConfigurationRegistry_LanguageConfigurationRegistryImpl = /*#__PURE__*/function () {
function LanguageConfigurationRegistryImpl() {
Object(classCallCheck["a" /* default */])(this, LanguageConfigurationRegistryImpl);
this._entries = new Map();
this._onDidChange = new common_event["b" /* Emitter */]();
this.onDidChange = this._onDidChange.event;
}
/**
* @param priority Use a higher number for higher priority
*/
Object(createClass["a" /* default */])(LanguageConfigurationRegistryImpl, [{
key: "register",
value: function register(languageId, configuration) {
var _this2 = this;
var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
var entries = this._entries.get(languageId);
if (!entries) {
entries = new languageConfigurationRegistry_ComposedLanguageConfiguration(languageId);
this._entries.set(languageId, entries);
}
var disposable = entries.register(configuration, priority);
this._onDidChange.fire(new languageConfigurationRegistry_LanguageConfigurationChangeEvent(languageId));
return Object(lifecycle["i" /* toDisposable */])(function () {
disposable.dispose();
_this2._onDidChange.fire(new languageConfigurationRegistry_LanguageConfigurationChangeEvent(languageId));
});
}
}, {
key: "getLanguageConfiguration",
value: function getLanguageConfiguration(languageId) {
var entries = this._entries.get(languageId);
return (entries === null || entries === void 0 ? void 0 : entries.getResolvedConfiguration()) || null;
}
}, {
key: "getComments",
value: function getComments(languageId) {
var value = this.getLanguageConfiguration(languageId);
if (!value) {
return null;
}
return value.comments || null;
} // begin Indent Rules
}, {
key: "getIndentRulesSupport",
value: function getIndentRulesSupport(languageId) {
var value = this.getLanguageConfiguration(languageId);
if (!value) {
return null;
}
return value.indentRulesSupport || null;
}
/**
* Get nearest preceding line which doesn't match unIndentPattern or contains all whitespace.
* Result:
* -1: run into the boundary of embedded languages
* 0: every line above are invalid
* else: nearest preceding line of the same language
*/
}, {
key: "getPrecedingValidLine",
value: function getPrecedingValidLine(model, lineNumber, indentRulesSupport) {
var languageId = model.getLanguageIdAtPosition(lineNumber, 0);
if (lineNumber > 1) {
var lastLineNumber;
var resultLineNumber = -1;
for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {
if (model.getLanguageIdAtPosition(lastLineNumber, 0) !== languageId) {
return resultLineNumber;
}
var text = model.getLineContent(lastLineNumber);
if (indentRulesSupport.shouldIgnore(text) || /^\s+$/.test(text) || text === '') {
resultLineNumber = lastLineNumber;
continue;
}
return lastLineNumber;
}
}
return -1;
}
/**
* Get inherited indentation from above lines.
* 1. Find the nearest preceding line which doesn't match unIndentedLinePattern.
* 2. If this line matches indentNextLinePattern or increaseIndentPattern, it means that the indent level of `lineNumber` should be 1 greater than this line.
* 3. If this line doesn't match any indent rules
* a. check whether the line above it matches indentNextLinePattern
* b. If not, the indent level of this line is the result
* c. If so, it means the indent of this line is *temporary*, go upward utill we find a line whose indent is not temporary (the same workflow a -> b -> c).
* 4. Otherwise, we fail to get an inherited indent from aboves. Return null and we should not touch the indent of `lineNumber`
*
* This function only return the inherited indent based on above lines, it doesn't check whether current line should decrease or not.
*/
}, {
key: "getInheritIndentForLine",
value: function getInheritIndentForLine(autoIndent, model, lineNumber) {
var honorIntentialIndent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
if (autoIndent < 4
/* Full */
) {
return null;
}
var indentRulesSupport = this.getIndentRulesSupport(model.getLanguageId());
if (!indentRulesSupport) {
return null;
}
if (lineNumber <= 1) {
return {
indentation: '',
action: null
};
}
var precedingUnIgnoredLine = this.getPrecedingValidLine(model, lineNumber, indentRulesSupport);
if (precedingUnIgnoredLine < 0) {
return null;
} else if (precedingUnIgnoredLine < 1) {
return {
indentation: '',
action: null
};