Я разрабатываю расширение, и мне нужно заменить текст в текущем окне. Я могу вызвать 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");
и это работает. Единственная проблема в том, что когда пользователь пытается отменить замену, текст возвращается построчно, а не как один большой кусок - так что я думаю, что должен быть лучший способ ...