#c# #visual-studio-2015 #extension-methods #intellisense
#c# #visual-studio-2015 #расширение-методы #intellisense
Вопрос:
Я следовал этому руководству> https://msdn.microsoft.com/en-us/library/bb165473.aspx до такой степени, что я могу создать пункт меню в строке меню Visual Studio.
Однако я читал об активных вкладках и тому подобном. Мне было интересно, можно ли записать код в методы таким образом, чтобы он показывал мне текущие вкладки, на которых я нахожусь?
Я создал несколько расширений, но ничего особенного в плане поиска активного пути к файлу.
Чего я пытаюсь добиться, это что-то вроде этого
За исключением этого, он может появиться в строке состояния ниже или всплывающем окне.
Где я должен использовать объекты DTE / DTE2?
Ответ №1:
В VS вы можете ссылаться на DTE
DTE2
объекты или. Они представляют VS IDE.
DTE dte = (DTE)GetService(typeof(DTE));
string document = dte.ActiveDocument.FullName;
вам нужно будет добавить ссылку на EnvDTE
сборку.
DTE
заменено на DTE2
. Вы можете получить ссылку на DTE2
следующее
EnvDTE80.DTE2 dte2;
dte2=(EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.12.0");
Код предназначен для VS2013
Комментарии:
1. Куда мне добавить эти объекты в свой код? Извините, я новичок в этом и читал только об объектах DTE / DTE2.
2. @leonardchan вы можете использовать
DTE
илиDTE2
в своем коде. После создания экземпляраDTE2
вы можете использовать его для поиска активного документа.3. Привет, извините, я не вижу, где я мог бы использовать DTE / DTE2 в приведенном выше примере для руководства TopLevelMenu. Я добавил ссылку, но она не работает.
4. Обратитесь к этой ссылке, расширяющей строку состояния
5. @leonardchan вы хотите показать текущий путь к файлу в строке состояния, верно? Поэтому необходимо перейти по этой ссылке, а также следовать приведенным выше фрагментам кода, возможно, вам придется объединить их подходящим образом, чтобы получить путь, отображаемый в строке состояния