我一直在尝试构建一个功能来记录更改并允许重播它们(向后和向前)。
我changes
在第一个 codemirror 实例中使用事件来记录数组中的所有更改。
然后将该数组馈送到重放 codemirror 实例。通过以下方法进行更改可以正常工作:
replayInstance.replaceRange(change.text, change.from, change.to, "Broadcast")
然而问题是如何倒退。假设用户处于第 5 次更改并且想要逐步向后退。是否有一些方法可以恢复更改,例如:
codemirror.revertChange(changeObj)
如果没有,还有其他方法可以解决这个问题吗?
PS:虽然codemirror提供了无法直接在代码中使用的撤消方法,因为它会阻碍用户的实际撤消/重做操作。我正在有效地寻找一种在不影响历史的情况下执行类似于撤消的方法。