3

我有一个带有几个命令的 VS2010 VSIP 包,这些命令被添加到 javascript 编辑器的上下文菜单中,我正在使用

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

但它只适用于 C# 文件,如何使它适用于 .js 文件?

4

1 回答 1

12

HTML/CSS/JS 代码编辑器实际上显示了与主代码编辑器不同的上下文菜单。遗憾的是,这些上下文菜单的 Guid/ID 对并未在 Visual Studio SDK 中发布或定义。

但是,有一个调试钩子(自 VS 2005 SP1 起)可以让您识别几乎所有您可能感兴趣的菜单项的 Guid/ID。请参阅此博客文章了解如何执行此操作。

使用该帖子中描述的技术,如果我在 Javascript 编辑器中按 CTRL+SHIFT+RIGHTCLICK,我会得到以下对话框:

替代文字

在我的 VSCT 文件的 <Symbols> 部分中,我可以输入以下内容:

<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>
于 2010-09-09T20:42:30.983 回答