在 Visual Studio 中扩展文档窗口上下文菜单

问题描述 投票:0回答:1

我正在努力扩展 Visual Studio 2022 以向上下文菜单添加按钮。

我已经弄清楚如何将按钮添加到代码窗口和解决方案资源管理器内的上下文菜单,尽管我真的希望能够在文档窗口选项卡上下文菜单中放置一个按钮,即当您右键单击 VS 中打开的文件选项卡。

下面是我当前用于在解决方案资源管理器/代码窗口中放置按钮的代码。

<Group guid="guidCopyUEIncludeCommandPackageCmdSet" id="HeaderGroup" priority="0x0600">
  <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
</Group>

<Group guid="guidCopyUEIncludeCommandPackageCmdSet" id="DocumentGroup" priority="0x0600">
  <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
</Group>

有人可以告诉我什么

id=
我需要在选项卡上下文中获取按钮吗?谢谢。

visual-studio-2022 visual-studio-extensions
1个回答
0
投票

如果您想在文档窗口选项卡上下文菜单中放置一个按钮,即右键单击 VS 中打开的文件选项卡时出现的菜单,您可以按照以下步骤操作。

测试结果

enter image description here

查了以下文档,好像没有类似的

IDM_VS_CTXT_ITEMNODE
id 来获取
Document Window
的id。

Visual Studio 菜单的 GUID 和 ID

Visual Studio 工具栏的 GUID 和 ID

VsMenus 类

但是,我找到了一个解决方法:使用

EnableVSIPLogging
来识别菜单和命令,然后将按钮放置到特定位置。

1.在注册表中启用 VSIPLogging,EnableVSIPLogging 值将位于如下所示的键中(17.0 将有所不同,具体取决于您的设置):

Computer\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\17.0_3d1fbd52\General

enter image description here

2.完成此操作后,您可以按住 CTRL+SHIFT 单击文档窗口选项卡,它将显示以下内容:

enter image description here

重要的值是 GUID 和 CommandID。

3.在 Symbols 下添加

Guid
Command ID
,以注册将 Guid 映射到 CommandSet 并将 CommandId 映射到上下文菜单值的命令集。

 <GuidSymbol name="DocumentWindowCommandSet" value="{D309F791-903F-11D0-9EFC-00A0C911004F}">
          <IDSymbol name="DocumentContextMenu" value="0x042b"/>
 </GuidSymbol>

注意:该值映射到以十六进制值表示的

CommandID

4.然后在“组”部分中引用该组作为命令组 (MyMenuGroup) 的父组:

<Groups>
      <Group guid="guidVSIXProject1PackageCmdSet" id="MyMenuGroup" priority="0x0600">
        <Parent guid="DocumentWindowCommandSet" id="DocumentContextMenu"/>
      </Group>
    </Groups>

参考文档:

启用VSIP日志记录

将 Visual Studio 命令(按钮)添加到特定位置

© www.soinside.com 2019 - 2024. All rights reserved.