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