Compare commits

...
Author SHA1 Message Date
Jesse Duffield 56d230a876 WIP 2023-09-10 17:32:35 +10:00
10 changed files with 108 additions and 22 deletions
@@ -45,11 +45,13 @@ func (self *ContextLinesController) GetKeybindings(opts types.KeybindingsOpts) [
Key: opts.GetKey(opts.Config.Universal.IncreaseContextInDiffView), Key: opts.GetKey(opts.Config.Universal.IncreaseContextInDiffView),
Handler: self.Increase, Handler: self.Increase,
Description: self.c.Tr.IncreaseContextInDiffView, Description: self.c.Tr.IncreaseContextInDiffView,
Tag: "diff",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.DecreaseContextInDiffView), Key: opts.GetKey(opts.Config.Universal.DecreaseContextInDiffView),
Handler: self.Decrease, Handler: self.Decrease,
Description: self.c.Tr.DecreaseContextInDiffView, Description: self.c.Tr.DecreaseContextInDiffView,
Tag: "diff",
}, },
} }
+19
View File
@@ -31,100 +31,119 @@ func (self *FilesController) GetKeybindings(opts types.KeybindingsOpts) []*types
Key: opts.GetKey(opts.Config.Universal.Select), Key: opts.GetKey(opts.Config.Universal.Select),
Handler: self.checkSelectedFileNode(self.press), Handler: self.checkSelectedFileNode(self.press),
Description: self.c.Tr.ToggleStaged, Description: self.c.Tr.ToggleStaged,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.OpenStatusFilter), Key: opts.GetKey(opts.Config.Files.OpenStatusFilter),
Handler: self.handleStatusFilterPressed, Handler: self.handleStatusFilterPressed,
Description: self.c.Tr.FileFilter, Description: self.c.Tr.FileFilter,
Tag: "filterDisplay",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.CommitChanges), Key: opts.GetKey(opts.Config.Files.CommitChanges),
Handler: self.c.Helpers().WorkingTree.HandleCommitPress, Handler: self.c.Helpers().WorkingTree.HandleCommitPress,
Description: self.c.Tr.CommitChanges, Description: self.c.Tr.CommitChanges,
Tag: "commit",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.CommitChangesWithoutHook), Key: opts.GetKey(opts.Config.Files.CommitChangesWithoutHook),
Handler: self.c.Helpers().WorkingTree.HandleWIPCommitPress, Handler: self.c.Helpers().WorkingTree.HandleWIPCommitPress,
Description: self.c.Tr.CommitChangesWithoutHook, Description: self.c.Tr.CommitChangesWithoutHook,
Tag: "commit",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.AmendLastCommit), Key: opts.GetKey(opts.Config.Files.AmendLastCommit),
Handler: self.handleAmendCommitPress, Handler: self.handleAmendCommitPress,
Description: self.c.Tr.AmendLastCommit, Description: self.c.Tr.AmendLastCommit,
Tag: "commit",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.CommitChangesWithEditor), Key: opts.GetKey(opts.Config.Files.CommitChangesWithEditor),
Handler: self.c.Helpers().WorkingTree.HandleCommitEditorPress, Handler: self.c.Helpers().WorkingTree.HandleCommitEditorPress,
Description: self.c.Tr.CommitChangesWithEditor, Description: self.c.Tr.CommitChangesWithEditor,
Tag: "commit",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.Edit), Key: opts.GetKey(opts.Config.Universal.Edit),
Handler: self.checkSelectedFileNode(self.edit), Handler: self.checkSelectedFileNode(self.edit),
Description: self.c.Tr.EditFile, Description: self.c.Tr.EditFile,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.OpenFile), Key: opts.GetKey(opts.Config.Universal.OpenFile),
Handler: self.Open, Handler: self.Open,
Description: self.c.Tr.OpenFile, Description: self.c.Tr.OpenFile,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.IgnoreFile), Key: opts.GetKey(opts.Config.Files.IgnoreFile),
Handler: self.checkSelectedFileNode(self.ignoreOrExcludeMenu), Handler: self.checkSelectedFileNode(self.ignoreOrExcludeMenu),
Description: self.c.Tr.Actions.IgnoreExcludeFile, Description: self.c.Tr.Actions.IgnoreExcludeFile,
OpensMenu: true, OpensMenu: true,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.RefreshFiles), Key: opts.GetKey(opts.Config.Files.RefreshFiles),
Handler: self.refresh, Handler: self.refresh,
Description: self.c.Tr.RefreshFiles, Description: self.c.Tr.RefreshFiles,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.StashAllChanges), Key: opts.GetKey(opts.Config.Files.StashAllChanges),
Handler: self.stash, Handler: self.stash,
Description: self.c.Tr.StashAllChanges, Description: self.c.Tr.StashAllChanges,
Tag: "stash",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.ViewStashOptions), Key: opts.GetKey(opts.Config.Files.ViewStashOptions),
Handler: self.createStashMenu, Handler: self.createStashMenu,
Description: self.c.Tr.ViewStashOptions, Description: self.c.Tr.ViewStashOptions,
OpensMenu: true, OpensMenu: true,
Tag: "stash",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.ToggleStagedAll), Key: opts.GetKey(opts.Config.Files.ToggleStagedAll),
Handler: self.toggleStagedAll, Handler: self.toggleStagedAll,
Description: self.c.Tr.ToggleStagedAll, Description: self.c.Tr.ToggleStagedAll,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.GoInto), Key: opts.GetKey(opts.Config.Universal.GoInto),
Handler: self.enter, Handler: self.enter,
Description: self.c.Tr.FileEnter, Description: self.c.Tr.FileEnter,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Commits.ViewResetOptions), Key: opts.GetKey(opts.Config.Commits.ViewResetOptions),
Handler: self.createResetToUpstreamMenu, Handler: self.createResetToUpstreamMenu,
Description: self.c.Tr.ViewResetToUpstreamOptions, Description: self.c.Tr.ViewResetToUpstreamOptions,
OpensMenu: true, OpensMenu: true,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.ViewResetOptions), Key: opts.GetKey(opts.Config.Files.ViewResetOptions),
Handler: self.createResetMenu, Handler: self.createResetMenu,
Description: self.c.Tr.ViewResetOptions, Description: self.c.Tr.ViewResetOptions,
OpensMenu: true, OpensMenu: true,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.ToggleTreeView), Key: opts.GetKey(opts.Config.Files.ToggleTreeView),
Handler: self.toggleTreeView, Handler: self.toggleTreeView,
Description: self.c.Tr.ToggleTreeView, Description: self.c.Tr.ToggleTreeView,
Tag: "filterDisplay",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.OpenMergeTool), Key: opts.GetKey(opts.Config.Files.OpenMergeTool),
Handler: self.c.Helpers().WorkingTree.OpenMergeTool, Handler: self.c.Helpers().WorkingTree.OpenMergeTool,
Description: self.c.Tr.OpenMergeTool, Description: self.c.Tr.OpenMergeTool,
Tag: "file",
}, },
{ {
Key: opts.GetKey(opts.Config.Files.Fetch), Key: opts.GetKey(opts.Config.Files.Fetch),
Handler: self.fetch, Handler: self.fetch,
Description: self.c.Tr.Fetch, Description: self.c.Tr.Fetch,
Tag: "sync",
}, },
} }
} }
@@ -34,6 +34,7 @@ func (self *FilesRemoveController) GetKeybindings(opts types.KeybindingsOpts) []
Handler: self.checkSelectedFileNode(self.remove), Handler: self.checkSelectedFileNode(self.remove),
Description: self.c.Tr.ViewDiscardOptions, Description: self.c.Tr.ViewDiscardOptions,
OpensMenu: true, OpensMenu: true,
Tag: "file",
}, },
} }
+16
View File
@@ -25,39 +25,46 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type
Key: opts.GetKey(opts.Config.Universal.ExecuteCustomCommand), Key: opts.GetKey(opts.Config.Universal.ExecuteCustomCommand),
Handler: self.customCommand, Handler: self.customCommand,
Description: self.c.Tr.ExecuteCustomCommand, Description: self.c.Tr.ExecuteCustomCommand,
Tag: "customCommands",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.CreatePatchOptionsMenu), Key: opts.GetKey(opts.Config.Universal.CreatePatchOptionsMenu),
Handler: self.createCustomPatchOptionsMenu, Handler: self.createCustomPatchOptionsMenu,
Description: self.c.Tr.ViewPatchOptions, Description: self.c.Tr.ViewPatchOptions,
OpensMenu: true, OpensMenu: true,
Tag: "customPatch",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.CreateRebaseOptionsMenu), Key: opts.GetKey(opts.Config.Universal.CreateRebaseOptionsMenu),
Handler: self.c.Helpers().MergeAndRebase.CreateRebaseOptionsMenu, Handler: self.c.Helpers().MergeAndRebase.CreateRebaseOptionsMenu,
Description: self.c.Tr.ViewMergeRebaseOptions, Description: self.c.Tr.ViewMergeRebaseOptions,
OpensMenu: true, OpensMenu: true,
Tag: "rebase",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.Refresh), Key: opts.GetKey(opts.Config.Universal.Refresh),
Handler: self.refresh, Handler: self.refresh,
Description: self.c.Tr.Refresh, Description: self.c.Tr.Refresh,
Tag: "misc",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.NextScreenMode), Key: opts.GetKey(opts.Config.Universal.NextScreenMode),
Handler: self.nextScreenMode, Handler: self.nextScreenMode,
Description: self.c.Tr.NextScreenMode, Description: self.c.Tr.NextScreenMode,
Tag: "filterDisplay",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.PrevScreenMode), Key: opts.GetKey(opts.Config.Universal.PrevScreenMode),
Handler: self.prevScreenMode, Handler: self.prevScreenMode,
Description: self.c.Tr.PrevScreenMode, Description: self.c.Tr.PrevScreenMode,
Tag: "filterDisplay",
}, },
{ {
ViewName: "", ViewName: "",
Key: opts.GetKey(opts.Config.Universal.OptionMenu), Key: opts.GetKey(opts.Config.Universal.OptionMenu),
Handler: self.createOptionsMenu, Handler: self.createOptionsMenu,
OpensMenu: true, OpensMenu: true,
Tag: "misc",
}, },
{ {
ViewName: "", ViewName: "",
@@ -67,6 +74,7 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type
// (the original main key was 'x' but we've reassigned that to other purposes) // (the original main key was 'x' but we've reassigned that to other purposes)
Description: self.c.Tr.OpenMenu, Description: self.c.Tr.OpenMenu,
Handler: self.createOptionsMenu, Handler: self.createOptionsMenu,
Tag: "misc",
}, },
{ {
ViewName: "", ViewName: "",
@@ -74,43 +82,51 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type
Handler: self.createFilteringMenu, Handler: self.createFilteringMenu,
Description: self.c.Tr.OpenFilteringMenu, Description: self.c.Tr.OpenFilteringMenu,
OpensMenu: true, OpensMenu: true,
Tag: "filterDisplay",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.DiffingMenu), Key: opts.GetKey(opts.Config.Universal.DiffingMenu),
Handler: self.createDiffingMenu, Handler: self.createDiffingMenu,
Description: self.c.Tr.OpenDiffingMenu, Description: self.c.Tr.OpenDiffingMenu,
OpensMenu: true, OpensMenu: true,
Tag: "diff",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.DiffingMenuAlt), Key: opts.GetKey(opts.Config.Universal.DiffingMenuAlt),
Handler: self.createDiffingMenu, Handler: self.createDiffingMenu,
Description: self.c.Tr.OpenDiffingMenu, Description: self.c.Tr.OpenDiffingMenu,
OpensMenu: true, OpensMenu: true,
Tag: "diff",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.Quit), Key: opts.GetKey(opts.Config.Universal.Quit),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.quit, Handler: self.quit,
Tag: "misc",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.QuitAlt1), Key: opts.GetKey(opts.Config.Universal.QuitAlt1),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.quit, Handler: self.quit,
Tag: "misc",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.QuitWithoutChangingDirectory), Key: opts.GetKey(opts.Config.Universal.QuitWithoutChangingDirectory),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.quitWithoutChangingDirectory, Handler: self.quitWithoutChangingDirectory,
Tag: "misc",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.Return), Key: opts.GetKey(opts.Config.Universal.Return),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.escape, Handler: self.escape,
Tag: "navigation",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.ToggleWhitespaceInDiffView), Key: opts.GetKey(opts.Config.Universal.ToggleWhitespaceInDiffView),
Handler: self.toggleWhitespace, Handler: self.toggleWhitespace,
Description: self.c.Tr.ToggleWhitespaceInDiffView, Description: self.c.Tr.ToggleWhitespaceInDiffView,
Tag: "diff",
}, },
} }
} }
+34 -17
View File
@@ -18,11 +18,31 @@ func (self *OptionsMenuAction) Call() error {
return nil return nil
} }
local, global, navigation := self.getBindings(ctx) headingMap := map[string]string{
"local": self.c.Tr.KeybindingsMenuSectionLocal,
"global": self.c.Tr.KeybindingsMenuSectionGlobal,
"navigation": self.c.Tr.KeybindingsMenuSectionNavigation,
"file": "File",
"workingTree": "Working tree",
"commit": "Commit",
"stash": "Stash",
"filterDisplay": "Filter/Display",
"sync": "Sync",
"customCommands": "Custom commands",
"customPatch": "Custom patch",
"rebase": "Rebase",
"misc": "Miscellaneous",
"diff": "Diff",
}
menuItems := []*types.MenuItem{} menuItems := []*types.MenuItem{}
appendBindings := func(bindings []*types.Binding, section *types.MenuSection) { for groupKey, bindings := range self.getBindingGroups(ctx) {
section := &types.MenuSection{
Title: headingMap[groupKey],
Column: 1,
}
menuItems = append(menuItems, menuItems = append(menuItems,
lo.Map(bindings, func(binding *types.Binding, _ int) *types.MenuItem { lo.Map(bindings, func(binding *types.Binding, _ int) *types.MenuItem {
return &types.MenuItem{ return &types.MenuItem{
@@ -42,10 +62,6 @@ func (self *OptionsMenuAction) Call() error {
})...) })...)
} }
appendBindings(local, &types.MenuSection{Title: self.c.Tr.KeybindingsMenuSectionLocal, Column: 1})
appendBindings(global, &types.MenuSection{Title: self.c.Tr.KeybindingsMenuSectionGlobal, Column: 1})
appendBindings(navigation, &types.MenuSection{Title: self.c.Tr.KeybindingsMenuSectionNavigation, Column: 1})
return self.c.Menu(types.CreateMenuOptions{ return self.c.Menu(types.CreateMenuOptions{
Title: self.c.Tr.Keybindings, Title: self.c.Tr.Keybindings,
Items: menuItems, Items: menuItems,
@@ -54,25 +70,26 @@ func (self *OptionsMenuAction) Call() error {
}) })
} }
// Returns three slices of bindings: local, global, and navigation func (self *OptionsMenuAction) getBindingGroups(context types.Context) map[string][]*types.Binding {
func (self *OptionsMenuAction) getBindings(context types.Context) ([]*types.Binding, []*types.Binding, []*types.Binding) {
var bindingsGlobal, bindingsPanel, bindingsNavigation []*types.Binding
bindings, _ := self.c.GetInitialKeybindingsWithCustomCommands() bindings, _ := self.c.GetInitialKeybindingsWithCustomCommands()
result := map[string][]*types.Binding{}
appendToGroup := func(groupKey string, binding *types.Binding) {
if _, ok := result[groupKey]; !ok {
result[groupKey] = []*types.Binding{}
}
result[groupKey] = append(result[groupKey], binding)
}
for _, binding := range bindings { for _, binding := range bindings {
if keybindings.LabelFromKey(binding.Key) != "" && binding.Description != "" { if keybindings.LabelFromKey(binding.Key) != "" && binding.Description != "" {
if binding.ViewName == "" { if binding.ViewName == context.GetViewName() || binding.ViewName == "" {
bindingsGlobal = append(bindingsGlobal, binding) appendToGroup(binding.Tag, binding)
} else if binding.Tag == "navigation" {
bindingsNavigation = append(bindingsNavigation, binding)
} else if binding.ViewName == context.GetViewName() {
bindingsPanel = append(bindingsPanel, binding)
} }
} }
} }
return uniqueBindings(bindingsPanel), uniqueBindings(bindingsGlobal), uniqueBindings(bindingsNavigation) return result
} }
// We shouldn't really need to do this. We should define alternative keys for the same // We shouldn't really need to do this. We should define alternative keys for the same
+1
View File
@@ -39,6 +39,7 @@ func (self *SearchController) GetKeybindings(opts types.KeybindingsOpts) []*type
Key: opts.GetKey(opts.Config.Universal.StartSearch), Key: opts.GetKey(opts.Config.Universal.StartSearch),
Handler: self.OpenSearchPrompt, Handler: self.OpenSearchPrompt,
Description: self.c.Tr.StartSearch, Description: self.c.Tr.StartSearch,
Tag: "filterDisplay",
}, },
} }
} }
+2
View File
@@ -33,11 +33,13 @@ func (self *SyncController) GetKeybindings(opts types.KeybindingsOpts) []*types.
Key: opts.GetKey(opts.Config.Universal.Push), Key: opts.GetKey(opts.Config.Universal.Push),
Handler: opts.Guards.NoPopupPanel(self.HandlePush), Handler: opts.Guards.NoPopupPanel(self.HandlePush),
Description: self.c.Tr.Push, Description: self.c.Tr.Push,
Tag: "sync",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.Pull), Key: opts.GetKey(opts.Config.Universal.Pull),
Handler: opts.Guards.NoPopupPanel(self.HandlePull), Handler: opts.Guards.NoPopupPanel(self.HandlePull),
Description: self.c.Tr.Pull, Description: self.c.Tr.Pull,
Tag: "sync",
}, },
} }
+2
View File
@@ -57,12 +57,14 @@ func (self *UndoController) GetKeybindings(opts types.KeybindingsOpts) []*types.
Handler: self.reflogUndo, Handler: self.reflogUndo,
Description: self.c.Tr.UndoReflog, Description: self.c.Tr.UndoReflog,
Tooltip: self.c.Tr.UndoTooltip, Tooltip: self.c.Tr.UndoTooltip,
Tag: "misc",
}, },
{ {
Key: opts.GetKey(opts.Config.Universal.Redo), Key: opts.GetKey(opts.Config.Universal.Redo),
Handler: self.reflogRedo, Handler: self.reflogRedo,
Description: self.c.Tr.RedoReflog, Description: self.c.Tr.RedoReflog,
Tooltip: self.c.Tr.RedoTooltip, Tooltip: self.c.Tr.RedoTooltip,
Tag: "misc",
}, },
} }
+30 -5
View File
@@ -83,6 +83,7 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Key: opts.GetKey(opts.Config.Universal.OpenRecentRepos), Key: opts.GetKey(opts.Config.Universal.OpenRecentRepos),
Handler: self.helpers.Repos.CreateRecentReposMenu, Handler: self.helpers.Repos.CreateRecentReposMenu,
Description: self.c.Tr.SwitchRepo, Description: self.c.Tr.SwitchRepo,
Tag: "misc",
}, },
{ {
ViewName: "", ViewName: "",
@@ -90,6 +91,7 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Handler: self.scrollUpMain, Handler: self.scrollUpMain,
Alternative: "fn+up/shift+k", Alternative: "fn+up/shift+k",
Description: self.c.Tr.ScrollUpMainPanel, Description: self.c.Tr.ScrollUpMainPanel,
Tag: "navigation",
}, },
{ {
ViewName: "", ViewName: "",
@@ -97,18 +99,21 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Handler: self.scrollDownMain, Handler: self.scrollDownMain,
Alternative: "fn+down/shift+j", Alternative: "fn+down/shift+j",
Description: self.c.Tr.ScrollDownMainPanel, Description: self.c.Tr.ScrollDownMainPanel,
Tag: "navigation",
}, },
{ {
ViewName: "", ViewName: "",
Key: opts.GetKey(opts.Config.Universal.ScrollUpMainAlt1), Key: opts.GetKey(opts.Config.Universal.ScrollUpMainAlt1),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollUpMain, Handler: self.scrollUpMain,
Tag: "navigation",
}, },
{ {
ViewName: "", ViewName: "",
Key: opts.GetKey(opts.Config.Universal.ScrollDownMainAlt1), Key: opts.GetKey(opts.Config.Universal.ScrollDownMainAlt1),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollDownMain, Handler: self.scrollDownMain,
Tag: "navigation",
}, },
{ {
ViewName: "", ViewName: "",
@@ -127,24 +132,28 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopyFileNameToClipboard, Description: self.c.Tr.CopyFileNameToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "localBranches", ViewName: "localBranches",
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopyBranchNameToClipboard, Description: self.c.Tr.CopyBranchNameToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "remoteBranches", ViewName: "remoteBranches",
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopyBranchNameToClipboard, Description: self.c.Tr.CopyBranchNameToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "commits", ViewName: "commits",
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopyCommitShaToClipboard, Description: self.c.Tr.CopyCommitShaToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "commits", ViewName: "commits",
@@ -157,12 +166,14 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopyCommitShaToClipboard, Description: self.c.Tr.CopyCommitShaToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "subCommits", ViewName: "subCommits",
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopyCommitShaToClipboard, Description: self.c.Tr.CopyCommitShaToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "information", ViewName: "information",
@@ -175,6 +186,7 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopyCommitFileNameToClipboard, Description: self.c.Tr.CopyCommitFileNameToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "", ViewName: "",
@@ -182,18 +194,21 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Handler: self.handleCreateExtrasMenuPanel, Handler: self.handleCreateExtrasMenuPanel,
Description: self.c.Tr.OpenExtrasMenu, Description: self.c.Tr.OpenExtrasMenu,
OpensMenu: true, OpensMenu: true,
Tag: "misc",
}, },
{ {
ViewName: "secondary", ViewName: "secondary",
Key: gocui.MouseWheelUp, Key: gocui.MouseWheelUp,
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollUpSecondary, Handler: self.scrollUpSecondary,
Tag: "navigation",
}, },
{ {
ViewName: "secondary", ViewName: "secondary",
Key: gocui.MouseWheelDown, Key: gocui.MouseWheelDown,
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollDownSecondary, Handler: self.scrollDownSecondary,
Tag: "navigation",
}, },
{ {
ViewName: "main", ViewName: "main",
@@ -201,6 +216,7 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Handler: self.scrollDownMain, Handler: self.scrollDownMain,
Description: self.c.Tr.ScrollDown, Description: self.c.Tr.ScrollDown,
Alternative: "fn+up", Alternative: "fn+up",
Tag: "navigation",
}, },
{ {
ViewName: "main", ViewName: "main",
@@ -208,87 +224,96 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
Handler: self.scrollUpMain, Handler: self.scrollUpMain,
Description: self.c.Tr.ScrollUp, Description: self.c.Tr.ScrollUp,
Alternative: "fn+down", Alternative: "fn+down",
Tag: "navigation",
}, },
{ {
ViewName: "secondary", ViewName: "secondary",
Key: gocui.MouseWheelUp, Key: gocui.MouseWheelUp,
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollUpSecondary, Handler: self.scrollUpSecondary,
Tag: "navigation",
}, },
{ {
ViewName: "confirmation", ViewName: "confirmation",
Key: opts.GetKey(opts.Config.Universal.PrevItem), Key: opts.GetKey(opts.Config.Universal.PrevItem),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollUpConfirmationPanel, Handler: self.scrollUpConfirmationPanel,
Tag: "navigation",
}, },
{ {
ViewName: "confirmation", ViewName: "confirmation",
Key: opts.GetKey(opts.Config.Universal.NextItem), Key: opts.GetKey(opts.Config.Universal.NextItem),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollDownConfirmationPanel, Handler: self.scrollDownConfirmationPanel,
Tag: "navigation",
}, },
{ {
ViewName: "confirmation", ViewName: "confirmation",
Key: opts.GetKey(opts.Config.Universal.PrevItemAlt), Key: opts.GetKey(opts.Config.Universal.PrevItemAlt),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollUpConfirmationPanel, Handler: self.scrollUpConfirmationPanel,
Tag: "navigation",
}, },
{ {
ViewName: "confirmation", ViewName: "confirmation",
Key: opts.GetKey(opts.Config.Universal.NextItemAlt), Key: opts.GetKey(opts.Config.Universal.NextItemAlt),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollDownConfirmationPanel, Handler: self.scrollDownConfirmationPanel,
Tag: "navigation",
}, },
{ {
ViewName: "submodules", ViewName: "submodules",
Key: opts.GetKey(opts.Config.Universal.CopyToClipboard), Key: opts.GetKey(opts.Config.Universal.CopyToClipboard),
Handler: self.handleCopySelectedSideContextItemToClipboard, Handler: self.handleCopySelectedSideContextItemToClipboard,
Description: self.c.Tr.CopySubmoduleNameToClipboard, Description: self.c.Tr.CopySubmoduleNameToClipboard,
Tag: "misc",
}, },
{ {
ViewName: "extras", ViewName: "extras",
Key: gocui.MouseWheelUp, Key: gocui.MouseWheelUp,
Handler: self.scrollUpExtra, Handler: self.scrollUpExtra,
Tag: "navigation",
}, },
{ {
ViewName: "extras", ViewName: "extras",
Key: gocui.MouseWheelDown, Key: gocui.MouseWheelDown,
Handler: self.scrollDownExtra, Handler: self.scrollDownExtra,
Tag: "navigation",
}, },
{ {
ViewName: "extras", ViewName: "extras",
Tag: "navigation",
Key: opts.GetKey(opts.Config.Universal.PrevItemAlt), Key: opts.GetKey(opts.Config.Universal.PrevItemAlt),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollUpExtra, Handler: self.scrollUpExtra,
Tag: "navigation",
}, },
{ {
ViewName: "extras", ViewName: "extras",
Tag: "navigation",
Key: opts.GetKey(opts.Config.Universal.PrevItem), Key: opts.GetKey(opts.Config.Universal.PrevItem),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollUpExtra, Handler: self.scrollUpExtra,
Tag: "navigation",
}, },
{ {
ViewName: "extras", ViewName: "extras",
Tag: "navigation",
Key: opts.GetKey(opts.Config.Universal.NextItem), Key: opts.GetKey(opts.Config.Universal.NextItem),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollDownExtra, Handler: self.scrollDownExtra,
Tag: "navigation",
}, },
{ {
ViewName: "extras", ViewName: "extras",
Tag: "navigation",
Key: opts.GetKey(opts.Config.Universal.NextItemAlt), Key: opts.GetKey(opts.Config.Universal.NextItemAlt),
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.scrollDownExtra, Handler: self.scrollDownExtra,
Tag: "navigation",
}, },
{ {
ViewName: "extras", ViewName: "extras",
Tag: "navigation",
Key: gocui.MouseLeft, Key: gocui.MouseLeft,
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: self.handleFocusCommandLog, Handler: self.handleFocusCommandLog,
Tag: "navigation",
}, },
} }
@@ -45,6 +45,7 @@ func (self *KeybindingCreator) call(customCommand config.CustomCommand, handler
Modifier: gocui.ModNone, Modifier: gocui.ModNone,
Handler: handler, Handler: handler,
Description: description, Description: description,
Tag: "customCommands",
}, nil }, nil
} }