diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2020-02-23 22:00:42 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2020-02-24 22:18:04 +1100 |
commit | 1f5ccab1ce59d82c69645da8ab31da2cee832cd7 (patch) | |
tree | b85a90c433046f495d003015275371754ed363d5 /pkg/gui | |
parent | 46be280c921994ba783b8c53232d118f0547ad14 (diff) |
eagerload commits when searching
Diffstat (limited to 'pkg/gui')
-rw-r--r-- | pkg/gui/commits_panel.go | 12 | ||||
-rw-r--r-- | pkg/gui/keybindings.go | 12 |
2 files changed, 23 insertions, 1 deletions
diff --git a/pkg/gui/commits_panel.go b/pkg/gui/commits_panel.go index 714f886b6..cc95fd82c 100644 --- a/pkg/gui/commits_panel.go +++ b/pkg/gui/commits_panel.go @@ -675,3 +675,15 @@ func (gui *Gui) onCommitsPanelSearchSelect(selectedLine int) error { } return nil } + +func (gui *Gui) handleOpenSearchForCommitsPanel(g *gocui.Gui, v *gocui.View) error { + // we usually lazyload these commits but now that we're searching we need to load them now + if gui.State.Panels.Commits.LimitCommits { + gui.State.Panels.Commits.LimitCommits = false + if err := gui.refreshCommits(gui.g); err != nil { + return err + } + } + + return gui.handleOpenSearch(gui.g, v) +} diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index bd050557a..d0820e066 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -641,6 +641,12 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Handler: gui.handlePrevCommitsTab, }, { + ViewName: "commits", + Key: gui.getKey("universal.startSearch"), + Modifier: gocui.ModNone, + Handler: gui.handleOpenSearchForCommitsPanel, + }, + { ViewName: "commits", Contexts: []string{"branch-commits"}, Key: gui.getKey("commits.squashDown"), @@ -1436,8 +1442,12 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { {ViewName: listView.viewName, Contexts: []string{listView.context}, Key: gui.getKey("universal.nextItem"), Modifier: gocui.ModNone, Handler: listView.handleNextLine}, {ViewName: listView.viewName, Contexts: []string{listView.context}, Key: gocui.MouseWheelDown, Modifier: gocui.ModNone, Handler: listView.handleNextLine}, {ViewName: listView.viewName, Contexts: []string{listView.context}, Key: gocui.MouseLeft, Modifier: gocui.ModNone, Handler: listView.handleClick}, - {ViewName: listView.viewName, Contexts: []string{listView.context}, Key: gui.getKey("universal.startSearch"), Modifier: gocui.ModNone, Handler: gui.handleOpenSearch}, }...) + + // we need a specific keybinding for the commits panel beacuse it usually lazyloads commits + if listView.viewName != "commits" { + bindings = append(bindings, &Binding{ViewName: listView.viewName, Contexts: []string{listView.context}, Key: gui.getKey("universal.startSearch"), Modifier: gocui.ModNone, Handler: gui.handleOpenSearch}) + } } return bindings |