Расширение для Visual Studio 2013: добавление кнопки в стандартное (контекстное) меню

Рейтинг: 7Ответов: 1Опубликовано: 26.04.2015

Как добавить дополнительную кнопку в стандартное контекстное меню, которое появляется при щелчке правой кнопкой мыши рядом с кодом?

Например такая функциональность:

  • правый щелчок вызывает стандартное меню
  • в меню помимо стандартных есть новая кнопка
  • щелчок по ней вызывает действие (например появляется сообщение)

Ответы

▲ 6Принят

Ответ частично найден.

Надо просто создать стандартный проект - Visual Stutio Package. Выбрать Menu Command в качестве интерфейса в диалоговом окне при создании (первый вариант). Потом открыть файл .vsct и поменять родителя у группы:

<Groups>
  <Group guid="guidVSPackageCmdSet" id="MyMenuGroup" priority="0x0600">
    <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
  </Group>
</Groups>

Именно

<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>

Привяжет группу (с кнопкой) в меню, появляющееся при нажатии правой кнопкой в коде. тут важен id этого меню IDM_VS_CTXT_CODEWIN и стандартный guid guidSHLMainMenu. Можно посмотреть другие id и guid (лучше в VS - там с описанием) https://msdn.microsoft.com/ru-ru/library/vstudio/microsoft.visualstudio.shell.vsmenus_members(v=vs.100).aspx#mainBody

В обработчике можно написать что угодно и оно заработает

private void MenuItemCallback(object sender, EventArgs e)
{            
    MessageBox.Show("Уже что-то заработало!!!");
}