获取/恢复Monaco编辑器Undo&Redo堆栈

Hél*_*ves 5 javascript monaco-editor

我想创建一个系统来存储Undo&Redo stackMonaco编辑器.

为什么?:我有一个Monaco实例,我做了几处修改.然后我必须处理该实例并打开一个新实例.在这里,我想恢复与前一个实例中相同的堆栈状态.

问题:如何获取和恢复Undo&Redo stack


更新: 当我处理Monaco编辑器实例时,JavaScript环境可以完全销毁.它集成在一个C#能够与之通信的环境中JS.我的目标是存储Monaco Editor modelC#或序列化.

jov*_*l22 3

这一切都与模型有关。

如果您恢复相同的模型,您将拥有撤消和重做堆栈

参见示例

var model = editorInstance.getModel();
var viewState = editorInstance.saveViewState();

//Destroy your instance for whatever reason
editorInstance.dispose();

//When you create the new instance load the model that you saved
var newInstance = monaco.editor.create(elem, options);
newInstance.setModel(model);
newInstance.restoreViewState(viewState);
Run Code Online (Sandbox Code Playgroud)

可能有帮助的事情是与摩纳哥事件挂钩联系起来

monaco.editor.onWillDisposeModel(saveModel)
Run Code Online (Sandbox Code Playgroud)

viewState用于恢复编辑器的光标位置。