C# VSIX - KeyBindings 元素的 "editor" 属性

C# VSIX - "editor" attribute of KeyBindings Element

因此 .vsct 文件允许开发人员为基于 visual studio shell 的应用程序扩展定义命令、工具栏等(在我的例子中是 Management Studio 2016 插件)。 它还允许为这些命令设置键绑定,如下所示:

 <KeyBinding guid="guidMenuAndCommandsCmdSet" id="cmdidMyCommand" editor="guidVSStd97" key1="1" mod1="Control" />

问题是选择在何处使用快捷方式。

guidVSStd97

是全局快捷方式的ID。我想要做的是将其绑定为文本编辑器快捷方式。 有谁知道在哪里可以找到该 ("editor") 属性的其他值?

不幸的是,在 MS documentation.

中没有任何内容

您可以在 中找到主要详细信息。

有关编辑器(作用域)的所有信息都存储在 Visual Studio 的注册表中。可以在以下位置获得: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0Exp_Config\Editors,其中 12.0Exp_Config 可以与任何其他版本交换。

之后你必须 link 符号中的 GUID 为:

<Symbols>
    <GuidSymbol name="guidMyWindow" value="{00000000-0000-0000-0000-000000000000}" />
<Symbols>

其中 0 应替换为注册表范围内的有效 GUID

KeyBinding 看起来像:

<KeyBindings>
    <KeyBinding guid="guidMyPackageCmdSet"
                id="MyCmdId"
                editor="guidMyWindow"
                key1="S" mod1="Control" />
</KeyBindings>

如果您正在创建自己的 Keybindings,您可能希望将范围更改为您自己的。我建议在 MSDN 网站上浏览我的 on similar topic and this answer