1

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

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

4

1 回答 1

0

是的。假设你有一个有效的

ITextBuffer buffer;

您只需要获得一个 ITextEdit,如下所示:

var textEdit = buffer.CreateEdit();

那么你就可以:

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

当你完成后,你必须

textEdit.Apply();

或者

textEdit.Cancel();

如果您不应用或取消您的更改,则缓冲区上将不允许进行其他更改....所以您可能希望将您的更改包装在尝试中...最后这样一个异常不会关闭您的编辑器。您的所有更改都将被分组,一次撤消将全部撤消。

希望这可以帮助。

于 2010-05-05T12:39:17.950 回答