Visual Studio拡張機能を作成しました。拡張機能に関連するユーザー操作のログを残しています。アンドゥ/リドゥが発生したときにイベントリスナーが呼び出され、アンドゥ/リドゥオブジェクトが存在するかどうかを確認することで、ツールがログに行う変更のアンドゥ/リドゥ情報を含めることができるようにしたい私のツールが生成したアクションに対応するものです。Visual Studio拡張機能のログを元に戻す/やり直しを行う
現在、私は私が生成するthis answerを追っITextUndoHistoryRegistry
を使用して取得し、現在のIWpfTextView
ためITextUndoHistory
を取得するためのコードを持っています。残念ながら、私が得たITextUndoHistory
オブジェクトは、有用であるには十分な機能を実装していません。具体的には、そのUndoRedoHappened
イベントが呼び出されますが、常にnull
のトランザクションがあります。また、そのUndoStack
/RedoStack
プロパティはSystem.NotSupportedException
をスローします。動作するのはCreateTransaction
なので、私にトランザクションオブジェクトが与えられ、Visual Studioの元に戻す/やり直しリストに表示されるアクションの名前を設定することができますが、それは動作する必要はありません。
Visual Studioで元に戻す情報にアクセスする他の方法はありますか?それとも、私がアクセスできるもので、もっと創造的なハックをしているのだろうか?
なぜユーザーアクションのログとして元に戻す/やり直しを使用していますか?元に戻す履歴は、任意の数の理由でクリアすることができるので、永久的ではありません。 –
@ JasonMalinowski、ユーザーが自分のツールを使用して変更を行ったかどうかを知りたいのですが、その変更を元に戻すために元に戻すとヒットします。 – perelman