我正在尝试开发一个vscode扩展,该扩展需要访问vscode撤消堆栈,但是我似乎找不到关于此的任何文档。
答案 0 :(得分:3)
我没有看到扩展可以直接访问撤消堆栈的任何方法。撤消堆栈是在editStack.ts
中实现的,但未在API中公开。
我也没有看到任何open issues请求这种访问。不过,我没有搜索已解决的问题。
问题How to see local history changes in Visual Studio Code?讨论了几个扩展,这些扩展通过跟踪自身来提供对旧版本的访问。
调用TextEditor.edit
时,可以选择在撤消停止之前和之后创建撤消停止。
通过executeCommand
,可以执行undo
,redo
和cursorUndo
之类的命令。
您可以使用workspace.onDidChangeTextDocument
来监视文档的更改,以便收集自己的文档历史记录。但是,您似乎无法判断给定的更改是否还创建了撤消停止,或者更改是否是由撤消或重做命令触发的。
也就是说,在我的Issue #1431: Support onDidExecuteCommand中讨论过的this answer应该允许监听undo
和redo
的调用,但是我根本没有玩过