我创建了一个插件,用于在Monaco编辑器中添加范围限制。这个插件是为了解决Monaco编辑器的
#953问题而创建的。
该插件的详细文档和Playground可以在
这里找到。
NPM包:
npm install constrained-editor-plugin@latest
依赖关系
<link rel="stylesheet" href="./node_modules/constrained-editor-plugin/constrained-editor-plugin.css">
<script src="./node_modules/constrained-editor-plugin/constrainedEditorPlugin.js" ></script>
示例片段
require.config({ paths: { vs: '../node_modules/monaco-editor/min/vs' } });
require(['vs/editor/editor.main'], function () {
const container = document.getElementById('container')
const editorInstance = monaco.editor.create(container, {
value: [
'const utils = {};',
'function addKeysToUtils(){',
'',
'}',
'addKeysToUtils();'
].join('\n'),
language: 'javascript'
});
const model = editorInstance.getModel();
const constrainedInstance = constrainedEditor(monaco);
constrainedInstance.initializeIn(editorInstance);
constrainedInstance.addRestrictionsTo(model, [{
range: [1, 7, 1, 12],
label: 'utilName',
validate: function (currentlyTypedValue, newRange, info) {
const noSpaceAndSpecialChars = /^[a-z0-9A-Z]*$/;
return noSpaceAndSpecialChars.test(currentlyTypedValue);
}
}, {
range: [3, 1, 3, 1],
allowMultiline: true,
label: 'funcDefinition'
}]);
});