private IReadOnlyList <MenuCommand> CreateNavigateMenuCommands()
 {
     return(new[]
     {
         new MenuCommand
         {
             Name = "ToggleBetweenArtificialAndHeadCommits",
             Text = "Toggle between artificial and HEAD commits",
             Image = Images.WorkingDirChanges,
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.ToggleBetweenArtificialAndHeadCommits),
             ExecuteAction = () => _revisionGrid.ToggleBetweenArtificialAndHeadCommits()
         },
         new MenuCommand
         {
             Name = "GotoCurrentRevision",
             Text = "Go to current revision",
             Image = Images.GotoCurrentRevision,
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.SelectCurrentRevision),
             ExecuteAction = SelectCurrentRevisionExecute
         },
         new MenuCommand
         {
             Name = "GotoCommit",
             Text = "Go to commit...",
             Image = Images.GotoCommit,
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.GoToCommit),
             ExecuteAction = GotoCommitExecute
         },
         MenuCommand.CreateSeparator(),
         new MenuCommand
         {
             Name = "GotoChildCommit",
             Text = "Go to child commit",
             Image = Images.GoToChildCommit,
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.GoToChild),
             ExecuteAction = () => _revisionGrid.ExecuteCommand(RevisionGridControl.Command.GoToChild)
         },
         new MenuCommand
         {
             Name = "GotoParentCommit",
             Text = "Go to parent commit",
             Image = Images.GoToParentCommit,
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.GoToParent),
             ExecuteAction = () => _revisionGrid.ExecuteCommand(RevisionGridControl.Command.GoToParent)
         },
         new MenuCommand
         {
             Name = "GotoMergeBaseCommit",
             Text = "Go to common ancestor (merge base)",
             ToolTipText = "Selects the common ancestor commit (merge base), which is the most recent shared ancestor of the selected commits (or if only one commit is selected, between it and the checked out commit (HEAD))",
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.GoToMergeBaseCommit),
             ExecuteAction = () => _revisionGrid.ExecuteCommand(RevisionGridControl.Command.GoToMergeBaseCommit)
         },
         MenuCommand.CreateSeparator(),
         new MenuCommand
         {
             Name = "NavigateBackward",
             Text = "Navigate backward",
             Image = Images.NavigateBackward,
             ShortcutKeyDisplayString = (Keys.Alt | Keys.Left).ToShortcutKeyDisplayString(),
             ExecuteAction = () => _revisionGrid.ExecuteCommand(RevisionGridControl.Command.NavigateBackward)
         },
         new MenuCommand
         {
             Name = "NavigateForward",
             Text = "Navigate forward",
             Image = Images.NavigateForward,
             ShortcutKeyDisplayString = (Keys.Alt | Keys.Right).ToShortcutKeyDisplayString(),
             ExecuteAction = () => _revisionGrid.ExecuteCommand(RevisionGridControl.Command.NavigateForward)
         },
         MenuCommand.CreateSeparator(),
         new MenuCommand
         {
             Name = "QuickSearch",
             Text = "Quick search",
             ToolTipText = _quickSearchQuickHelp.Text,
             ExecuteAction = () => MessageBox.Show(_quickSearchQuickHelp.Text, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
         },
         new MenuCommand
         {
             Name = "PrevQuickSearch",
             Text = "Quick search previous",
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.PrevQuickSearch),
             ExecuteAction = () => _revisionGrid.ExecuteCommand(RevisionGridControl.Command.PrevQuickSearch)
         },
         new MenuCommand
         {
             Name = "NextQuickSearch",
             Text = "Quick search next",
             ShortcutKeyDisplayString = GetShortcutKeyDisplayStringFromRevisionGridIfAvailable(RevisionGridControl.Command.NextQuickSearch),
             ExecuteAction = () => _revisionGrid.ExecuteCommand(RevisionGridControl.Command.NextQuickSearch)
         }
     });
 }