Как расширить контекстное меню редактора vs2010 для файла .js? - PullRequest
3 голосов
/ 09 сентября 2010

У меня есть пакет VSIP VS2010 с несколькими командами. Эти команды добавляются в контекстное меню редактора JavaScript, и я использую

  <Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
  </Group>

но это работает только файл C #, как заставить его работать для файла .js?

1 Ответ

12 голосов
/ 10 сентября 2010

Редакторы кода HTML / CSS / JS на самом деле отображают контекстные меню, отличные от основного редактора кода. К сожалению, пары Guid / ID для этих контекстных меню не публикуются и не определяются в Visual Studio SDK.

Тем не менее, есть отладочная ловушка (начиная с VS 2005 SP1), которая позволяет вам идентифицировать Guid / ID практически любого пункта меню, который вас может заинтересовать. См. этот пост , чтобы узнать, как это сделать. .

Используя технику, описанную в этом посте, если я нажимаю CTRL + SHIFT + RIGHTCLICK в редакторе Javascript, я получаю следующий диалог:

alt text

В разделе моего VSCT-файла я могу указать следующее:

<GuidSymbol name="htmlEditorCommandSet" value="{D7E8C5E1-BDB8-11D0-9C88-0000F8040A53}">
  <IDSymbol name="jsContextMenu" value="0x0034"/>  <!-- 52 in hex is 0x0034 -->
</GuidSymbol>

Тогда это просто вопрос воспитания этого Guid / ID:

  <Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600">
    <Parent guid="htmlEditorCommandSet" id="jsContextMenu"/>
  </Group>
...