如何在文本编辑器中设计撤消和重做?

我的项目的一部分是编写一个文本编辑器,该文本编辑器用于键入一些规则,编译我的应用程序并运行它。编写编译器是结束并发布beta版。在最终版本中,我们必须将撤消和重做添加到文本编辑器中。我使用一个文件,并定期将其保存为文本编辑器。如何设计文本编辑器的撤消和重做?文件的持久性结构发生了什么变化?

回答:

您可以将操作建模为命令,并保存在两个堆栈中。一个用于撤消,另一个用于重做。您可以编写命令来创建更多高级命令,例如,当您要撤消宏操作时;或者如果您想在一个动作中将单个单词或短语的各个按键组合在一起。

编辑器中的每个操作(或重做操作)都会生成一个新的撤消命令,该命令将进入撤消堆栈(并清除重做堆栈)。每个撤消操作都会生成进入重做堆栈的相应重做命令。

如derekerdmann的评论中所述,您还可以将撤消和重做命令组合为一种类型的命令,该命令知道如何撤消和重做其动作。

以上是 如何在文本编辑器中设计撤消和重做? 的全部内容, 来源链接: utcz.com/qa/402761.html

回到顶部