我编写了一个 Visual Studio 扩展,并让它记录与我的扩展相关的用户操作。我希望能够在日志中包含我的工具所做更改的撤消/重做信息,我希望能够通过在撤消/重做发生时调用事件侦听器并检查撤消/重做对象是否是与我的工具生成的动作相对应的那个。
目前,我有代码来获取ITextUndoHistory
current IWpfTextView
,我使用ITextUndoHistoryRegistry
我按照这个答案生成的。不幸的是,ITextUndoHistory
我得到的对象没有实现足够有用的功能。具体来说,它的UndoRedoHappened
事件被调用,但总是有一个事务null
。此外,它的UndoStack
/RedoStack
属性 throw System.NotSupportedException
。唯一有效的是CreateTransaction
给我一个事务对象,让我为在 Visual Studio 的撤消/重做列表中显示的操作设置名称,尽管我不需要它来工作。
是否有其他方法可以访问 Visual Studio 中的撤消信息?或者也许我可以访问一些更有创意的黑客?