From 3524f6baa95f73cbe6cbd90335cebaeb158667a3 Mon Sep 17 00:00:00 2001 From: Giorgio Previtera Date: Sat, 27 Jul 2019 12:16:26 +0100 Subject: 480 - remove duplication by using a decorator Also use a for loop to append the new keybindings --- pkg/gui/keybindings.go | 35 +++++------------------------------ pkg/gui/view_helpers.go | 45 ++++++++------------------------------------- 2 files changed, 13 insertions(+), 67 deletions(-) (limited to 'pkg') diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 30eca5615..24fd5a854 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -523,36 +523,6 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Handler: gui.handleOpenOldCommitFile, Description: gui.Tr.SLocalize("openFile"), }, - { - ViewName: "", - Key: '1', - Modifier: gocui.ModNone, - Handler: gui.goToStatus, - }, - { - ViewName: "", - Key: '2', - Modifier: gocui.ModNone, - Handler: gui.goToFiles, - }, - { - ViewName: "", - Key: '3', - Modifier: gocui.ModNone, - Handler: gui.goToBranches, - }, - { - ViewName: "", - Key: '4', - Modifier: gocui.ModNone, - Handler: gui.goToCommits, - }, - { - ViewName: "", - Key: '5', - Modifier: gocui.ModNone, - Handler: gui.goToStash, - }, } for _, viewName := range []string{"status", "branches", "files", "commits", "commitFiles", "stash", "menu"} { @@ -565,6 +535,11 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { }...) } + // Appends keybindings to jump to a particular sideView using numbers + for i, viewName := range []string{"status", "files", "branches", "commits", "stash"} { + bindings = append(bindings, &Binding{ViewName: "", Key: rune(i+1) + '0', Modifier: gocui.ModNone, Handler: gui.goToSideView(viewName)}) + } + listPanelMap := map[string]struct { prevLine func(*gocui.Gui, *gocui.View) error nextLine func(*gocui.Gui, *gocui.View) error diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go index ca3ababd1..7426ce18f 100644 --- a/pkg/gui/view_helpers.go +++ b/pkg/gui/view_helpers.go @@ -139,44 +139,15 @@ func (gui *Gui) returnFocus(g *gocui.Gui, v *gocui.View) error { return gui.switchFocus(g, v, previousView) } -func (gui *Gui) goToStatus(g *gocui.Gui, v *gocui.View) error { - view, err := g.View("status") - if err != nil { - gui.Log.Error(err) - } - return gui.switchFocus(g, nil, view) -} - -func (gui *Gui) goToFiles(g *gocui.Gui, v *gocui.View) error { - view, err := g.View("files") - if err != nil { - gui.Log.Error(err) - } - return gui.switchFocus(g, nil, view) -} - -func (gui *Gui) goToBranches(g *gocui.Gui, v *gocui.View) error { - view, err := g.View("branches") - if err != nil { - gui.Log.Error(err) - } - return gui.switchFocus(g, nil, view) -} - -func (gui *Gui) goToCommits(g *gocui.Gui, v *gocui.View) error { - view, err := g.View("commits") - if err != nil { - gui.Log.Error(err) - } - return gui.switchFocus(g, nil, view) -} - -func (gui *Gui) goToStash(g *gocui.Gui, v *gocui.View) error { - view, err := g.View("stash") - if err != nil { - gui.Log.Error(err) +func (gui *Gui) goToSideView(sideViewName string) func(g *gocui.Gui, v *gocui.View) error { + return func(g *gocui.Gui, v *gocui.View) error { + view, err := g.View(sideViewName) + if err != nil { + gui.Log.Error(err) + return nil + } + return gui.switchFocus(g, nil, view) } - return gui.switchFocus(g, nil, view) } // pass in oldView = nil if you don't want to be able to return to your old view -- cgit v1.2.3