gpt4 book ai didi

visual-studio - 在VS解决方案资源管理器中,如何在源文件子代码元素(类/方法/字段)上扩展右键菜单

转载 作者:行者123 更新时间:2023-12-04 07:37:24 28 4
gpt4 key购买 nike

我正在开发 Visual Studio 扩展 (VSIX)。

我需要在解决方案资源管理器上添加自定义右键单击菜单,右键单击类/方法/字段项,可以在源文件项下找到:

enter image description here

在 .vsct 文件中,我已经以这种方式扩展了解决方案资源管理器项目/文件夹/源文件/引用右键菜单:

<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
</CommandPlacement>
<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE" />
</CommandPlacement>
<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_FOLDERNODE" />
</CommandPlacement>
<CommandPlacement guid="guidNDepend_PackageCmdSet" id="grpSolutionExplorer" priority="0x100">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_REFERENCE" />
</CommandPlacement>

我尝试了我发现的所有其他值但没有成功:
IDM_VS_CTXT_CODEWIN
IDM_VS_CTXT_XPROJ_MULTIITEM
IDM_VS_CTXT_XPROJ_PROJITEM
IDM_VS_CTXT_NOCOMMANDS
IDM_VS_CTXT_REFERENCEROOT

谢谢你的帮助。

(请注意,我已经有一些棘手的代码来解析右键单击的代码元素,从 IVsSelectionEvents.OnSelectionChanged() 调用,就在 QueryStatus() 处理程序被触发之前)

最佳答案

看:

Using EnableVSIPLogging to identify menus and commands with VS 2005 + SP1

和:

How to find Command GUID:ID pairs

谢谢卡洛斯,我完成了这项工作:) 所以让我们解释一下。首先,如博客文章中所述,我设置了 regkey:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\General]
"EnableVSIPLogging"=dword:00000001

然后重新启动 VS2013,按住 Ctrl+SHIFT 并右键单击 SlnExplorer 窗口中的文件内容类。我懂了:

enter image description here

指南是 guidSHLMainMenu一,但我需要从值 1842 中获取命令 ID ( 0x0732 十六进制)。我用谷歌搜索了一下,发现 this answer .我安装了 VS2013 SDK。我寻找头文件的位置 vsshlids.h .它是在:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VSSDK\VisualStudioIntegration\Common\Inc

在这个目录中,我搜索了任何包含 732 的文本文件。 .我发现
#define IDM_VS_CTXT_PROJWIN_FILECONTENTS            0x732  // Context menu for GraphNode items in the Solution Explorer


C:\Program Files (x86)\Microsoft Visual Studio 12.0\VSSDK\VisualStudioIntegration\Common\Inc\vsshlids.h

因此我要找的名字是 IDM_VS_CTXT_PROJWIN_FILECONTENTS 事实上,有了这个值(value),它就像一个魅力;谢谢卡洛斯!

关于visual-studio - 在VS解决方案资源管理器中,如何在源文件子代码元素(类/方法/字段)上扩展右键菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28696823/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com