我有一个带有几个命令的 VS2010 VSIP 包,这些命令被添加到 javascript 编辑器的上下文菜单中,我正在使用
<Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
</Group>
但它只适用于 C# 文件,如何使它适用于 .js 文件?
我有一个带有几个命令的 VS2010 VSIP 包,这些命令被添加到 javascript 编辑器的上下文菜单中,我正在使用
<Group guid="guidPrettyJsCmdSet" id="ContextMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
</Group>
但它只适用于 C# 文件,如何使它适用于 .js 文件?
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>