Visual Studio包/宏:如何将多个文本操作组合到一个撤消中

时间:2010-05-05 07:59:56

标签: visual-studio-2010 vs-extensibility

我有一个Visual Studio(2010)包,它结合了多个文本操作,例如它将自定义属性插入到我的csharp文件中。

这些插入可以变得非常多,我希望能够通过单击撤消按钮来反转Command的效果。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

是。假设你有一个有效的

ITextBuffer buffer;

你只需要获得一个ITextEdit,就像这样:

var textEdit = buffer.CreateEdit();

然后你可以:

textEdit.Delete(...)
textEdit.Insert(....)

当你完成后,你必须

textEdit.Apply();

textEdit.Cancel();

如果您不应用或取消更改,则不允许对缓冲区进行其他更改....因此您可能希望将更改包装在try ... finally中,以便异常不会关闭你的编辑。您的所有更改都将被分组,单个撤消将全部撤消。

希望这有帮助。