Skip to content

Commit 8456cbd

Browse files
committed
Read all lines from task when starting to search
1 parent a213207 commit 8456cbd

File tree

2 files changed

+35
-11
lines changed

2 files changed

+35
-11
lines changed

pkg/gui/controllers.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ func (gui *Gui) resetHelpersAndControllers() {
190190
patchExplorerControllerFactory := controllers.NewPatchExplorerControllerFactory(common)
191191
stagingController := controllers.NewStagingController(common, gui.State.Contexts.Staging, gui.State.Contexts.StagingSecondary, false)
192192
stagingSecondaryController := controllers.NewStagingController(common, gui.State.Contexts.StagingSecondary, gui.State.Contexts.Staging, true)
193-
mainViewController := controllers.NewMainViewController(common, gui.State.Contexts.Normal, gui.State.Contexts.NormalSecondary)
194-
secondaryViewController := controllers.NewMainViewController(common, gui.State.Contexts.NormalSecondary, gui.State.Contexts.Normal)
193+
mainViewController := controllers.NewMainViewController(common, gui.State.Contexts.Normal, gui.State.Contexts.NormalSecondary, &gui.viewBufferManagerMap)
194+
secondaryViewController := controllers.NewMainViewController(common, gui.State.Contexts.NormalSecondary, gui.State.Contexts.Normal, &gui.viewBufferManagerMap)
195195
patchBuildingController := controllers.NewPatchBuildingController(common)
196196
snakeController := controllers.NewSnakeController(common)
197197
reflogCommitsController := controllers.NewReflogCommitsController(common)

pkg/gui/controllers/main_view_controller.go

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,34 @@
11
package controllers
22

33
import (
4+
"github.com/jesseduffield/lazygit/pkg/gui/context"
45
"github.com/jesseduffield/lazygit/pkg/gui/types"
6+
"github.com/jesseduffield/lazygit/pkg/tasks"
57
)
68

79
type MainViewController struct {
810
baseController
9-
c *ControllerCommon
11+
c *ControllerCommon
12+
viewBufferManagerMap *map[string]*tasks.ViewBufferManager
1013

11-
context types.Context
12-
otherContext types.Context
14+
context *context.MainContext
15+
otherContext *context.MainContext
1316
}
1417

1518
var _ types.IController = &MainViewController{}
1619

1720
func NewMainViewController(
1821
c *ControllerCommon,
19-
context types.Context,
20-
otherContext types.Context,
22+
context *context.MainContext,
23+
otherContext *context.MainContext,
24+
viewBufferManagerMap *map[string]*tasks.ViewBufferManager,
2125
) *MainViewController {
2226
return &MainViewController{
23-
baseController: baseController{},
24-
c: c,
25-
context: context,
26-
otherContext: otherContext,
27+
baseController: baseController{},
28+
c: c,
29+
viewBufferManagerMap: viewBufferManagerMap,
30+
context: context,
31+
otherContext: otherContext,
2732
}
2833
}
2934

@@ -41,6 +46,13 @@ func (self *MainViewController) GetKeybindings(opts types.KeybindingsOpts) []*ty
4146
Handler: self.escape,
4247
Description: self.c.Tr.ExitFocusedMainView,
4348
},
49+
{
50+
// overriding this because we want to read all of the task's output before we start searching
51+
Key: opts.GetKey(opts.Config.Universal.StartSearch),
52+
Handler: self.openSearch,
53+
Description: self.c.Tr.StartSearch,
54+
Tag: "navigation",
55+
},
4456
}
4557
}
4658

@@ -61,3 +73,15 @@ func (self *MainViewController) escape() error {
6173
self.c.Context().Pop()
6274
return nil
6375
}
76+
77+
func (self *MainViewController) openSearch() error {
78+
if manager, ok := (*self.viewBufferManagerMap)[self.context.GetViewName()]; ok {
79+
manager.ReadToEnd(func() {
80+
self.c.OnUIThread(func() error {
81+
return self.c.Helpers().Search.OpenSearchPrompt(self.context)
82+
})
83+
})
84+
}
85+
86+
return nil
87+
}

0 commit comments

Comments
 (0)