我有一个 Visual Studio (2010) 包,它结合了多个文本操作,例如,它将自定义属性插入到我的 csharp 文件中。
这些插入可以变得相当多,我希望能够通过单击撤消按钮来反转命令的效果。有没有办法做到这一点?
我有一个 Visual Studio (2010) 包,它结合了多个文本操作,例如,它将自定义属性插入到我的 csharp 文件中。
这些插入可以变得相当多,我希望能够通过单击撤消按钮来反转命令的效果。有没有办法做到这一点?
是的。假设你有一个有效的
ITextBuffer buffer;
您只需要获得一个 ITextEdit,如下所示:
var textEdit = buffer.CreateEdit();
那么你就可以:
textEdit.Delete(...)
textEdit.Insert(....)
当你完成后,你必须
textEdit.Apply();
或者
textEdit.Cancel();
如果您不应用或取消您的更改,则缓冲区上将不允许进行其他更改....所以您可能希望将您的更改包装在尝试中...最后这样一个异常不会关闭您的编辑器。您的所有更改都将被分组,一次撤消将全部撤消。
希望这可以帮助。