Выбор текущего активного файла C # для отображения в строке состояния

#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 вы хотите показать текущий путь к файлу в строке состояния, верно? Поэтому необходимо перейти по этой ссылке, а также следовать приведенным выше фрагментам кода, возможно, вам придется объединить их подходящим образом, чтобы получить путь, отображаемый в строке состояния