对于代码编辑器中的.cshtml文件,上下文菜单项未出现

Konamiman

我创建了一个Visual Studio扩展,将两个条目添加到右键单击两个位置时出现的上下文菜单中:解决方案资源管理器中的项目以及打开的代码编辑器窗口中的任何位置。

我面临的问题是,如果要编辑的.cshtml文件文件,则在代码编辑器窗口中单击时,菜单项不会出现(但是,在解决方案资源管理器中单击时,菜单项确实会出现)。对于我测试过的任何其他文件类型,它都可以正常工作。

这是我在.vsct文件中定义菜单项的方法:

<Groups>
  <Group guid="guidBrowseInRemoteGitRepoCommandPackageCmdSet" 
         id="MyMenuGroup" priority="0x0600">
    <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
  </Group>
  <Group guid="guidBrowseInRemoteGitRepoCommandPackageCmdSet" 
         id="MyMenuGroup" priority="0x0600">
    <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
  </Group>
</Groups>

<Buttons>
    <Button guid="guidBrowseInRemoteGitRepoCommandPackageCmdSet" 
            id="BrowseInRemoteGitRepoCommandId" priority="0x0100" type="Button">
    <Parent guid="guidBrowseInRemoteGitRepoCommandPackageCmdSet" id="MyMenuGroup" />
    <Icon guid="guidImages" id="bmpPicGit" />
    <CommandFlag>DynamicVisibility</CommandFlag>
    <Strings>
      <ButtonText>Browse in remote repository</ButtonText>
    </Strings>
  </Button>

  <Button guid="guidBrowseInRemoteGitRepoCommandPackageCmdSet"
          id="CopyRemoteGitRepoUrlCommandId" priority="0x0100" type="Button">
  <Parent guid="guidBrowseInRemoteGitRepoCommandPackageCmdSet" id="MyMenuGroup" />
  <Icon guid="guidImages" id="bmpPicGit" />
  <CommandFlag>DynamicVisibility</CommandFlag>
  <Strings>
    <ButtonText>Copy URL of remote repository version</ButtonText>
  </Strings>
  </Button>
</Buttons>

菜单条目被创建为OleMenuCommand命令构造函数中的实例

var commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) 
    as OleMenuCommandService;
if (commandService == null) return;

var browseMenuCommandID = new CommandID(CommandSet, BrowseCommandId);
var browseMenuItem = new OleMenuCommand(BrowseMenuItemCallback, browseMenuCommandID);
browseMenuItem.BeforeQueryStatus += MenuItemOnBeforeQueryStatus;
commandService.AddCommand(browseMenuItem);
//same for the other entry

MenuItemOnBeforeQueryStatussenderVisibleEnabled为true或false适当。

那么,我在这里想念的是什么?

编辑:

为了完整起见,这是我需要在.vsct文件中执行以实现Carlos Quintero建议的更改的更改

1)在内部添加以下内容<Symbols>

<GuidSymbol name="guidCshtmlCodeEditor" value="{78F03954-2FB8-4087-8CE7-59D71710B3BB}" />

2)在内部添加以下内容<Groups>

<Group guid="guidBrowseInRemoteGitRepoCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
    <Parent guid="guidCshtmlCodeEditor" id="IDM_VS_TOOL_STANDARD"/>
</Group>
卡洛斯·昆特罗(Carlos Quintero)

埃德的回答。Dore(https://social.msdn.microsoft.com/Forums/vstudio/en-US/7c5eb211-3985-426c-a3a2-9da4473dbaf4/my-context-menu-item-made-by-menu-command-in- visual-studio-package-is-not-shown-in-cshtml-files?forum = vsx):

.cshtml文件显示一个不同的上下文菜单。

如果您使用EnableVSIPLogging注册表值(HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0 \ General),如旧文章所述:

http://blogs.msdn.com/b/dr._ex/archive/2007/04/17/using-enablevsiplogging-to-identify-menus-and-commands-with-vs-2005-sp1.aspx

您会看到有两个不同的上下文菜单在使用中。

.CS文件使用:

Guid = {D309F791-903F-11D0-9EFC-00A0C911004F}
GuidID = 4
CmdID = 1037
Type = 0x00000400
Flags = 0x00000000
NameLoc = Code Window

和.CSHTML文件使用:

Guid = {78F03954-2FB8-4087-8CE7-59D71710B3BB}
GuidID = 395
CmdID = 1
Type = 0x00000400
Flags = 0x00000000
NameLoc = HTML Context

因此,您需要相应地修改.vsct文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的上下文菜单项会在编辑器中打开文件和文本编辑器?

Windows 10中的空白上下文菜单项

在Windows中,通常如何为文件添加上下文菜单项?

如何删除Finder上下文菜单项中显示的冗余文件名?

编辑Windows资源管理器上下文菜单项说明

在20.04中将键盘快捷方式添加到Gnome文件上下文菜单项

如何根据条件在WPF XAML中隐藏上下文菜单的菜单项

如何在上下文菜单中添加“打开链接”菜单项

Adobe Acrobat 插件 - 在上下文菜单中创建子菜单项

如何在Delphi的IDE上下文菜单中添加菜单项

使用Windows资源管理器的“打印”上下文菜单项

浏览器上下文菜单项的更短快捷方式?

使用Javascript获取浏览器上下文菜单项

在Windows 8中查找对上下文菜单项的引用

在Outlook 2016中添加上下文菜单项

限制 Android 中可见上下文菜单项的数量

用按键激活上下文菜单项的wxPython中的PopupMenu

Windows 7中缺少“刻录图像”上下文菜单项

如何在devtools>网络面板中添加上下文菜单项?

以编程方式自定义 C# WPF 中的上下文菜单项

从上下文菜单中获取所选菜单项的名称(或索引),该菜单项是通过绑定到ObservableCollection的ItemsSource动态生成的

如何将上下文菜单项添加到Windows资源管理器中用于exe以外的文件夹

新菜单项未出现在 UI 中

从上下文菜单的菜单项中检索选定的项目。我正在使用WPF,MVVM

海马“解密”上下文菜单未出现在Nautilus中

如何直接从文件管理器的上下文菜单中在Atom编辑器中打开文件夹?

是否在任何代码编辑器中实现了Crockford风格的上下文着色?

如何在Windows XP中的自定义上下文菜单项中添加图标?

Caliburn.Micro:如何将函数绑定到 DataGrid 的 RowDetailsTemplate 中的上下文菜单项?