summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-02-23 22:00:42 +1100
committerJesse Duffield <jessedduffield@gmail.com>2020-02-24 22:18:04 +1100
commit1f5ccab1ce59d82c69645da8ab31da2cee832cd7 (patch)
treeb85a90c433046f495d003015275371754ed363d5
parent46be280c921994ba783b8c53232d118f0547ad14 (diff)
eagerload commits when searching
-rw-r--r--pkg/gui/commits_panel.go12
-rw-r--r--pkg/gui/keybindings.go12
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