以编程方式从 Atom 的撤消堆栈中删除条目

Programatically remove entry from Atom's undo stack

我已经为 Atom 编辑器编写了一小段 coffeescript 代码,用于在某些文件被保存之前更新时间戳注释,并且运行良好。

不幸的是,很明显,这个修改在 Atom 的撤消堆栈上结束,所以如果在保存这些文件后我撤消了我的更改,则时间戳在之前的更改之前被撤消。出于这个原因,我想从撤消堆栈中删除此时间戳更新。

我知道我可以使用 TextBuffer.transact()TextEditor.transact() 将多个更改 打包 到单个撤消事务中,但我找不到如何删除撤消堆栈中的最后一个条目(或多个条目)。

是直接访问 historyProvider 并混淆 undostack Array 的唯一解决方案吗?坦率地说,现在我不知道这会产生哪些副作用,但我在 Atom API 中找不到任何我需要的东西。

一如既往地提前致谢:)

抱歉自动回答,但我找到了实现我想要的方法。

使用Editor.insertText(text, {undo: 'skip'},可以从撤消堆栈中删除文本插入,并且可以为setTextInRange提供相同的选项,这是我之前使用的。