[
["f", "Show next/latest diffs", "setProposedDiffBounds()"],
[null, "Diff all changes", "setDiffBounds('full')"],
[null, "Diff unreviewed changes", "setDiffBounds('unreviewed')"],

["n", "Next unreviewed file", "nextUnreviewedFile()"],
["p", "Previous unreviewed file", "prevUnreviewedFile()"],
["shift+n", "Next changed file", "nextChangedFile()"],
["shift+p", "Previous changed file", "prevChangedFile()"],
[null, "Next visible file", "nextVisibleFile()"],
[null, "Previous visible file", "prevVisibleFile()"],
[null, "Next file", "nextFile()"],
[null, "Previous file", "prevFile()"],

[null, "First unreviewed file", "firstUnreviewedFile()"],
[null, "Last unreviewed file", "lastUnreviewedFile()"],
[null, "First changed file", "firstChangedFile()"],
[null, "Last changed file", "lastChangedFile()"],
[null, "First visible file", "firstVisibleFile()"],
[null, "Last visible file", "lastVisibleFile()"],
[null, "First file", "firstFile()"],
[null, "Last file", "lastFile()"],

["x", "Mark file as reviewed / unreviewed", "toggleCurrentFileReviewed()"],
[null, "Mark file as reviewed and advance", "markFileReviewedAndAdvance()"],
[null, "Mark file as reviewed and retreat", "markFileReviewedAndRetreat()"],
["shift+x", "Mark all files as reviewed", "setGlobalReviewed()"],

["j", "Next unreplied comment", "nextUnrepliedDiscussion()"],
["k", "Previous unreplied comment", "prevUnrepliedDiscussion()"],
[null, "Next comment", "nextDiscussion()"],
[null, "Previous comment", "prevDiscussion()"],
["shift+j", "Next unresolved comment", "nextUnresolvedDiscussion()"],
["shift+k", "Previous unresolved comment", "prevUnresolvedDiscussion()"],
[null, "Next unresolved comment without draft reply", "nextUnresolvedDiscussionWithoutDraft()"],
[null, "Previous unresolved comment without draft reply", "prevUnresolvedDiscussionWithoutDraft()"],
[null, "Next comment with the given disposition", "nextDiscussionWithDisposition('blocking')"],
[null, "Previous comment with the given disposition", "prevDiscussionWithDisposition('mentioned')"],
[null, "Next draft", "nextDraft()"],
[null, "Previous draft", "prevDraft()"],

[null, "First unreplied comment", "firstUnrepliedDiscussion()"],
[null, "Last unreplied comment", "lastUnrepliedDiscussion()"],
[null, "First comment", "firstDiscussion()"],
[null, "Last comment", "lastDiscussion()"],
[null, "First unresolved comment", "firstUnresolvedDiscussion()"],
[null, "Last unresolved comment", "lastUnresolvedDiscussion()"],
[null, "First unresolved comment without draft reply", "firstUnresolvedDiscussionWithoutDraft()"],
[null, "Last unresolved comment without draft reply", "lastUnresolvedDiscussionWithoutDraft()"],
[null, "First comment with the given disposition", "firstDiscussionWithDisposition('dismissed')"],
[null, "Last comment with the given disposition", "lastDiscussionWithDisposition('discussing')"],
[null, "First draft", "firstDraft()"],
[null, "Last draft", "lastDraft()"],

[".", "Next item that needs your attention", "nextChangedFileOrUnrepliedDiscussion()"],
[",", "Previous item that needs your attention", "prevChangedFileOrUnrepliedDiscussion()"],
[null, "First item that needs your attention", "firstChangedFileOrUnrepliedDiscussion()"],
[null, "Last item that needs your attention", "lastChangedFileOrUnrepliedDiscussion()"],

[["r", "enter"], "Reply to comment", "replyToCurrentDiscussion()"],
["y", "Accept or acknowledge comment", "acknowledgeCurrentDiscussion()"],
[null, "Set disposition to \"discussing\"", "setCurrentDiscussionDisposition('discussing')"],
[null, "Set disposition to \"satisfied\"", "setCurrentDiscussionDisposition('satisfied')"],
[null, "Set disposition to \"blocking\"", "setCurrentDiscussionDisposition('blocking')"],
[null, "Set disposition to \"working\"", "setCurrentDiscussionDisposition('working')"],
[null, "Copy current file link", "copyFileLink()"],
[null, "Copy current discussion link", "copyDiscussionLink()"],
[null, "Copy current file path", "copyFilePath()"],
[null, "Open current file in editor", "openFileInEditor()"],
[null, "View current diff on GitHub", "viewDiffOnGitHub()"],
[null, "Open current file on GitHub", "openFileOnGitHub()"],
[null, "Edit current file on GitHub", "editFileOnGitHub()"],
["mod+shift+o", "Show / hide older comments", "toggleCurrentDiscussionOlderComments()"],
[null, "Show and expand all comments", "showHideAllComments(true)"],
[null, "Collapse all comments", "showHideAllComments(false)"],
["mod+shift+p", "Toggle draft preview", "toggleCurrentDraftPreview()"],
["mod+shift+e", "Create draft code block", "createCodeblockInCurrentDraft()"],
[null, "Delete comment", "deleteDraft()"],
[null, "Publish current comment", "sendCurrentComment()"],

[null, "Publish all comments", "publish()"],
[null, "Merge pull request", "merge()"],
[null, "Show reviewer avatars in file matrix", "toggleReviewerAvatars()"],
[null, "Go to the file matrix", "visit('fileMatrix')"],
[null, "Go to the discussion matrix", "visit('discussionMatrix')"],
[null, "Go to the participants panel", "visit('participants')"],
[null, "Go to the checks panel", "visit('checks')"],
[null, "Go to the diffs panel", "visit('diffControls')"],
[null, "Go to the conclusion panel", "visit('publish')"],

[null, "Copy head branch name", "copyHeadBranch()"],
[null, "Edit PR's base branch", "editBaseBranch()"],

[null, "Return to reviews dashboard", "navigate('/reviews')"],

[null, "Toggle account settings dropdown", "toggleAccountSettings()"],

[null, "Pivot the sidebar between vertical and horizontal drawers", "adjustSidebar('drawer-vertical', 'drawer-horizontal')"],
[null, "Toggle sidebar between the most compact form and horizontal drawer", "adjustSidebar('collapsed', 'drawer-horizontal')"],
[null, "Toggle the sidebar between docked and full mode", "adjustSidebar( 'full', 'drawer-vertical')"],
[null, "Toggle the sidebar between its most compact form and full mode", "adjustSidebar('full', 'collapsed')"],
[null, "Force sidebar open", "adjustSidebar('full')"],
[null, "Force sidebar docked", "adjustSidebar('drawer-vertical')"]
]
