1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-03-05 15:15:49 +02:00

480 - remove duplication by using a decorator

Also use a for loop to append the new keybindings
This commit is contained in:
Giorgio Previtera 2019-07-27 12:16:26 +01:00 committed by Jesse Duffield
parent ac5cbc1d2c
commit 3524f6baa9
2 changed files with 13 additions and 67 deletions

View File

@ -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

View File

@ -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)
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)
}
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)
}
return gui.switchFocus(g, nil, view)
}
// pass in oldView = nil if you don't want to be able to return to your old view