Get a List of All ReSharper Actions

Have you ever wondered what ReSharper actions there are or searched whether there is some ReSharper action triggered by a certain user interaction that you want to handle? It’s actually fairly easy to find out what’s there. Just add the following class to your ReSharper plugin, run it in debug mode, and check the console output.

using JetBrains.ActionManagement;
using System.Diagnostics;

[ShellComponent]
public class MyReSharperActionIdPrinter
{
    public MyReSharperActoinIdPrinter(IActionManager actionManager)
    {
        actionManager.GetAllActions().Cast<IUpdatableAction>()
          .ForEach(action => Debug.WriteLine(action.Id));
    }
}

Note: IExecutableAction is a subtype of IUpdatableAction, so this really works for all registered actions.