Я хочу написать расширение для Visual Studio, которое заменяет ключевое слово "var" на явный тип, но только визуально, а не в самом коде.
После некоторых исследований MSDN и Интернета я попытался использовать VisualBuffer (проекционный буфер) ITextViewModel, но он также изменил код в файле.
Вот, например, я попробовал наоборот, заменив "int" на "var"
[Export(typeof(ITextViewCreationListener))]
[ContentType("text")]
[TextViewRole(PredefinedTextViewRoles.Document)]
internal class TestViewCreationListener : ITextViewCreationListener
{
private ITextBuffer _buffer;
public void TextViewCreated(ITextView textView)
{
ITextViewModel textVM = textView.TextViewModel;
_buffer = textVM.VisualBuffer;
string text = _buffer.CurrentSnapshot.GetText();
int index = text.IndexOf("int ");
while (index > 0)
{
_buffer.Replace(new Span(index, 3), "var");
index = text.IndexOf("int ", index + 4);
}
}
}
Заранее спасибо :)
but it also changes code in the file
, поэтому вы не хотите менять var на int или что-то еще, вы имеете в виду краткую информацию, например эта проблема? - person LoLance   schedule 02.09.2019