【问题标题】:Adding a Visual Studio toolbar button for a command that is only available as a keyboard shortcut为仅可用作键盘快捷键的命令添加 Visual Studio 工具栏按钮
【发布时间】:2013-03-13 19:34:04
【问题描述】:

这个问题与这个ReSharper YouTrack issue有关。

在安装了 ReSharper 7.1.1 的 Visual Studio 2010 中,如果我转到工具 > 选项 > 环境 > 键盘,则会有一个名为 ReSharper_SilentCleanupCode 的命令。

我想将此命令绑定到工具栏按钮。

使用工具 > 自定义 > 命令这似乎是不可能的,因为此对话框中唯一可用的命令适用于已经具有关联菜单项的操作。我感兴趣的特定 ReSharper 命令(静默代码清理)没有出现在任何菜单中,因此无法使用“GUI”将其分配给工具栏按钮。

还有其他方法可以将仅键盘命令绑定到工具栏按钮吗? (ReSharper 的一位程序员认为可以使用“VS 脚本编辑器”,但我没有找到这方面的信息。)

编辑

我应该首先提到这一点。虽然 azhrei 的宏解决方案非常适合 Visual Studio 2010,但一旦我升级到 VS 2012,它就会中断,因为不再支持宏。如果有人有一个可以继续在 VS 2012 中工作的解决方案,那将是可取的。 (或者也许 VS 2012 工具栏一开始就没有相同的限制?)

【问题讨论】:

    标签: visual-studio-2010 visual-studio resharper resharper-7.1


    【解决方案1】:

    添加执行命令的宏,然后将宏添加到工具栏。

    之所以有效,是因为它使仅键盘命令出现在“自定义命令”对话框的“宏”菜单中。

    详情

    添加一个执行此操作的宏:

        Sub _ReSharper_SilentCleanupCode()
            DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
        End Sub
    

    把这个宏放在一个出现在Customize..Commands..AddCommand..Categories..Macros中的模块中,例如SamplesMyMacros.RecordingModule ,但不是 MyMacros.Module1(使用宏 IDE 时的默认设置)。

    转到Tools..Customize..Command 并选择您想要的Toolbar

    现在Add Command... 并选择Macros 类别。

    选择您的 Macros.Samples._ReSharper_SilentCleanupCode 宏。

    单击Modify Selection 并将名称更改为#-) 或任何让您觉得ReSharper Silent Code Cleanup 的文本不会让您的工具栏太长。 :-)

    我在 Visual Studio 2010 和 ReSharper 7.1.2 上试过这个。

    编辑

    Visual Commander 显然也是在 VS2012 上实现这一点的一种方式 - 请参阅下面的 cmets 了解更多信息。

    【讨论】:

    • +1,谢谢。一个问题……你为什么不建议把宏放在 MyModule 中?首先,您是指 MyModule(我似乎没有的模块)还是 MyMacros(默认宏项目)?我尝试将我的宏放在 MyMacros > Recording Module 中,这似乎有效,即使我在不​​同的 .vssettings 文件之间切换。
    • 谢谢。我的意思是 MyMacros,默认项目。刚刚尝试使用录制的宏 - 也适用于我。更新了答案。
    • 至于VS2012,它确实看起来也有同样的限制。试试stackoverflow.com/questions/12482620/… - 接受的答案看起来很有希望。添加命令后,您可以自定义。
    • 啊,这就是我真正想要的。我只是不知道要使用正确的搜索词。感谢您挖掘它!
    • 您可以在 VS 2012 中将此宏重新用作 Visual Commander 命令,然后将其添加到工具栏:visualstudiogallery.msdn.microsoft.com/…
    猜你喜欢
    • 2019-08-01
    • 1970-01-01
    • 2011-12-12
    • 2017-06-24
    • 2014-12-29
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多