我正在开发一个扩展,基本上需要替换当前窗口中的文本。我可以这样调用 ReplacePattern
EnvDTE80.DTE2 app = GetActiveIDE();
TextDocument txt = app.ActiveDocument.Object("TextDocument") as TextDocument;
EditPoint ep = txt.CreateEditPoint(txt.StartPoint);
txt.ReplacePattern(".*", string.Empty, (int)vsFindOptions.vsFindOptionsRegularExpression);
ep.Insert("blah");
它有效。唯一的问题是,当用户尝试撤消替换时,文本会逐行返回,而不是单个大块 - 所以我认为应该有更好的方法......