in src/dotnet/JetBrains.PresentationAssistant/ReSharperActionShortcutProvider.cs [232:247]
private static ShortcutSequence GetShortcutSequence(string shortcut)
{
// ReSharper registers chords twice, once where the second char doesn't have modifiers
// and once where the second char repeats the modifier of the first char.
// E.g. Ctrl+R, R and Ctrl+R, Ctrl+R. This allows for flexibility in hitting that chord
// (do you hold Ctrl down all the time, or just for the first char? Doesn't matter!)
// Empirically, there are only two actions that have a genuine alternative shortcut -
// SafeDelete (VS): Ctrl+R, D and Alt+Delete
// Rename (IntelliJ): F2 and Shift+F6
// These can be safely ignored, meaning we can just show the primary shortcut
var parsedShortcut = ShortcutUtil.ParseKeyboardShortcut(shortcut);
if (parsedShortcut == null)
return null;
return GetShortcutSequence(parsedShortcut);
}