我想创建一个系统来存储 Monaco 编辑器的 Undo&Redo 堆栈
。
为什么?:我有一个摩纳哥实例,我在其中进行了多项更改。然后我必须处理该实例并打开一个新实例。在这里,我想恢复上一个实例中的堆栈状态。
问题:如何获取和恢复Undo&Redo堆栈
?
更新:
当我处理 Monaco 编辑器实例时,JavaScript 环境可以被完全破坏。它集成在能够与JS
通信的C#
环境中。我的目标是将 Monaco Editor 模型
存储在 C#
中或对其进行序列化。
最佳答案
这一切都与模型有关。
如果您恢复相同的模型,您将拥有撤消和重做堆栈
看例子
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);
可能有帮助的是绑定(bind)到摩纳哥事件 Hook
monaco.editor.onWillDisposeModel(saveModel)
viewState
可用于恢复编辑器的光标位置。
关于javascript - 获取/恢复 Monaco 编辑器撤消重做堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48210120/