Visual Studio Macro to Output All Key Bindings

In my new role I’m primarily developing in C# whereas my primary language in the past has been Visual Basic .NET. With a different language, comes a different Visual Studio profile, and with a different Visual Studio profile comes different key bindings.

This Visual Studio macro outputs each Visual Studio command (alphabetically) and its associated key bindings. When run the key bindings will be output to Visual Studio’s Output window, from here you can copy and paste them into whatever format you want.

Public Sub DumpBindings()

    Dim commands As New System.Collections.Generic.Dictionary(Of String, System.Collections.Generic.List(Of String))

    For Each command As Command In DTE.Commands

        Dim bindings As Object() = DirectCast(command.Bindings, Object())

        If String.IsNullOrEmpty(command.Name) OrElse bindings.Length = 0 Then

            Continue For

        End If


        commands.Add(command.Name, New System.Collections.Generic.List(Of String))

        For Each binding As Object In bindings

            Dim bindingValue As String = DirectCast(binding, String)





    Dim commandNames(commands.Keys.Count - 1) As String

    commands.Keys.CopyTo(commandNames, 0)



    For Each commandName As String In commandNames




        For Each binding As String In commands(commandName)

            Debug.WriteLine("{0}{1}", ControlChars.Tab, binding)



End Sub

Comments (0)

Skip to main content