Visual Studio Package / Macro: как объединить несколько текстовых операций в одну отмену - PullRequest
1 голос
/ 05 мая 2010

У меня есть пакет Visual Studio (2010), который объединяет несколько текстовых операций, например он вставляет пользовательские свойства в мои файлы csharp.

Этих вставок может быть довольно много, и я хотел бы иметь возможность полностью изменить эффект Команды одним нажатием кнопки отмены. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 05 мая 2010

Да. Предполагая, что у вас есть действительный

ITextBuffer buffer;

Вам просто нужно получить ITextEdit, например:

var textEdit = buffer.CreateEdit();

Тогда вы можете:

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

и когда вы закончите, вы должны

textEdit.Apply();

или

textEdit.Cancel();

Если вы не примените или не отмените свои изменения, другие изменения не будут разрешены в буфере .... поэтому вы, вероятно, захотите обернуть свои изменения в попытке ... наконец, чтобы исключение не закрылось твой редактор. Все ваши изменения будут сгруппированы, и одна отмена отменит их все.

Надеюсь, это поможет.

...