我有一个带有几个命令的VS2010 VSIP包,这些命令被添加到javascript编辑器的上下文菜单中,我正在使用
<Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
</Group>
但它仅适用于C#文件,如何使其适用于.js文件?
答案 0 :(得分:12)
HTML / CSS / JS代码编辑器实际上显示的不同于主代码编辑器的上下文菜单。遗憾的是,这些上下文菜单的Guid / ID对不会在Visual Studio SDK中发布或定义。
但是,有一个调试钩子(自VS 2005 SP1开始),它允许您识别几乎任何您可能感兴趣的菜单项的Guid / ID。请参阅this blog post了解如何执行此操作。
使用该帖子中描述的技术,如果我在Javascript编辑器中按CTRL + SHIFT + RIGHTCLICK,我会得到以下对话框:
在&lt;符号&gt;中我的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>