Visual Studio Package/Macro: как объединить несколько текстовых операций в одну отмену
У меня есть пакет Visual Studio (2010), который объединяет несколько текстовых операций, например, он вставляет пользовательские свойства в мои файлы csharp.
Этих вставок может быть довольно много, и я хотел бы иметь возможность полностью изменить эффект Команды одним нажатием кнопки отмены. Есть ли способ сделать это?
1 ответ
Да. Если у вас есть действительный
ITextBuffer buffer;
Вам просто нужно получить ITextEdit, вот так:
var textEdit = buffer.CreateEdit();
Тогда ты можешь:
textEdit.Delete(...)
textEdit.Insert(....)
и когда вы закончите, вы должны
textEdit.Apply();
или же
textEdit.Cancel();
Если вы не примените или не отмените свои изменения, другие изменения не будут разрешены в буфере... поэтому вы, вероятно, захотите обернуть свои изменения в попытке... наконец, чтобы исключение не закрывало ваш редактор. Все ваши изменения будут сгруппированы, и одна отмена отменит их все.
Надеюсь это поможет.