summaryrefslogtreecommitdiffstats
path: root/pkg/gui/keybindings.go
diff options
context:
space:
mode:
authorMark Kopenga <mkopenga@gmail.com>2018-12-08 16:41:39 +0100
committerGitHub <noreply@github.com>2018-12-08 16:41:39 +0100
commit19a6a32625d59c61ecfe91ef8626390eb34a922a (patch)
treeb02d1a9c8477d2614f99cc80b40b54accf28c127 /pkg/gui/keybindings.go
parent270658fc009dc254a80501fc1c9f5f82acd27239 (diff)
parentff856b763033a241370bfde98d7386b43b7d0893 (diff)
Merge branch 'master' into https-ask-for-username-password
Diffstat (limited to 'pkg/gui/keybindings.go')
-rw-r--r--pkg/gui/keybindings.go36
1 files changed, 28 insertions, 8 deletions
diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go
index 28647b245..978f6dcdf 100644
--- a/pkg/gui/keybindings.go
+++ b/pkg/gui/keybindings.go
@@ -210,7 +210,7 @@ func (gui *Gui) GetKeybindings() []*Binding {
ViewName: "files",
Key: 'D',
Modifier: gocui.ModNone,
- Handler: gui.handleResetHard,
+ Handler: gui.handleResetAndClean,
Description: gui.Tr.SLocalize("resetHard"),
}, {
ViewName: "files",
@@ -329,6 +329,12 @@ func (gui *Gui) GetKeybindings() []*Binding {
Handler: gui.handleMerge,
Description: gui.Tr.SLocalize("mergeIntoCurrentBranch"),
}, {
+ ViewName: "branches",
+ Key: 'f',
+ Modifier: gocui.ModNone,
+ Handler: gui.handleFastForward,
+ Description: gui.Tr.SLocalize("FastForward"),
+ }, {
ViewName: "commits",
Key: 's',
Modifier: gocui.ModNone,
@@ -469,19 +475,33 @@ func (gui *Gui) GetKeybindings() []*Binding {
},
}
- // Would make these keybindings global but that interferes with editing
- // input in the confirmation panel
- for _, viewName := range []string{"status", "files", "branches", "commits", "stash", "menu"} {
+ for _, viewName := range []string{"status", "branches", "files", "commits", "stash", "menu"} {
bindings = append(bindings, []*Binding{
{ViewName: viewName, Key: gocui.KeyTab, Modifier: gocui.ModNone, Handler: gui.nextView},
{ViewName: viewName, Key: gocui.KeyArrowLeft, Modifier: gocui.ModNone, Handler: gui.previousView},
{ViewName: viewName, Key: gocui.KeyArrowRight, Modifier: gocui.ModNone, Handler: gui.nextView},
- {ViewName: viewName, Key: gocui.KeyArrowUp, Modifier: gocui.ModNone, Handler: gui.cursorUp},
- {ViewName: viewName, Key: gocui.KeyArrowDown, Modifier: gocui.ModNone, Handler: gui.cursorDown},
{ViewName: viewName, Key: 'h', Modifier: gocui.ModNone, Handler: gui.previousView},
{ViewName: viewName, Key: 'l', Modifier: gocui.ModNone, Handler: gui.nextView},
- {ViewName: viewName, Key: 'k', Modifier: gocui.ModNone, Handler: gui.cursorUp},
- {ViewName: viewName, Key: 'j', Modifier: gocui.ModNone, Handler: gui.cursorDown},
+ }...)
+ }
+
+ listPanelMap := map[string]struct {
+ prevLine func(*gocui.Gui, *gocui.View) error
+ nextLine func(*gocui.Gui, *gocui.View) error
+ }{
+ "menu": {prevLine: gui.handleMenuPrevLine, nextLine: gui.handleMenuNextLine},
+ "files": {prevLine: gui.handleFilesPrevLine, nextLine: gui.handleFilesNextLine},
+ "branches": {prevLine: gui.handleBranchesPrevLine, nextLine: gui.handleBranchesNextLine},
+ "commits": {prevLine: gui.handleCommitsPrevLine, nextLine: gui.handleCommitsNextLine},
+ "stash": {prevLine: gui.handleStashPrevLine, nextLine: gui.handleStashNextLine},
+ }
+
+ for viewName, functions := range listPanelMap {
+ bindings = append(bindings, []*Binding{
+ {ViewName: viewName, Key: 'k', Modifier: gocui.ModNone, Handler: functions.prevLine},
+ {ViewName: viewName, Key: gocui.KeyArrowUp, Modifier: gocui.ModNone, Handler: functions.prevLine},
+ {ViewName: viewName, Key: 'j', Modifier: gocui.ModNone, Handler: functions.nextLine},
+ {ViewName: viewName, Key: gocui.KeyArrowDown, Modifier: gocui.ModNone, Handler: functions.nextLine},
}...)
}