Я пытался создать расширение, которое выделяет для меня определенные номера строк в Visual Studio на полях.
Мне удалось получить свою пометку на полях, используя предопределенный номер строки, но для ее правильной работы мне нужно знать, каким является текущий документ FullName (путь и имя файла)
После долгих поисков яразобрался, как это сделать с примером кода (который не идеален)
DTE2 dte = (DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.15.0");
var activeDocument = dte.ActiveDocument;
var docName = activeDocument.Name;
var docFullName = activeDocument.FullName;
Теперь я знаю проблемы здесь
- в том, что для конкретных версий баз на текст
- нет способа выбрать, какой экземпляр (при запуске более одной VS)
- Кажется, что он очень медленный
У меня такое чувство, что я должен бытьделать это с помощью атрибутов MEF, но примеры документов MS настолько просты, что они не работают для меня.Я тоже отсканировал несколько ТАКИХ вопросов и просто не могу заставить их работать.В основном они говорят о Services
.. которого у меня нет, и я не знаю, как его получить.
В остальной части моего кода используется SnapshotSpans
, как в примере Расширение Примеры Todo_Classification это здорово, если вам НЕ нужно знать имя файла.
Я никогда не занимался разработкой расширений.Пожалуйста, кто-нибудь может помочь мне сделать это правильно.