无需销毁重建Monaco Editor,如何修改其编辑器语言?
修改Monaco Editor的语言以复用编辑器
要在不调用dispose()和create()重建编辑器的前提下修改其语言,你可以通过以下两种方式实现:
方式一:修改现有模型的语言
直接获取编辑器当前关联的模型,调用setModelLanguage()方法切换语言,示例代码如下:
// 获取编辑器当前的模型 const model = editor.getModel(); // 将模型语言改为css monaco.editor.setModelLanguage(model, 'css'); // 可选:同步更新对应语言的内容 editor.setValue('body { background-color: #f0f0f0; }');
方式二:创建新模型并替换
如果需要保留原模型,可创建新的对应语言模型并设置给编辑器:
// 创建css语言的新模型,同时传入初始内容 const newCssModel = monaco.editor.createModel( 'body { background-color: #f0f0f0; }', 'css' ); // 将新模型绑定到编辑器 editor.setModel(newCssModel);
注意:确保目标语言已被Monaco Editor加载,自定义语言需提前完成注册。
内容的提问来源于stack exchange,提问作者erosman
相关产品推荐
相关产品推荐

