Skip to content

Commit 5cf1c5c

Browse files
committed
Add IGuiCommon.GetViewBufferManagerForView
So that we don't have to pass the map to controllers.
1 parent a39ce4f commit 5cf1c5c

File tree

7 files changed

+30
-17
lines changed

7 files changed

+30
-17
lines changed

pkg/gui/controllers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func (gui *Gui) resetHelpersAndControllers() {
180180
globalController := controllers.NewGlobalController(common)
181181
contextLinesController := controllers.NewContextLinesController(common)
182182
renameSimilarityThresholdController := controllers.NewRenameSimilarityThresholdController(common)
183-
verticalScrollControllerFactory := controllers.NewVerticalScrollControllerFactory(common, &gui.viewBufferManagerMap)
183+
verticalScrollControllerFactory := controllers.NewVerticalScrollControllerFactory(common)
184184

185185
branchesController := controllers.NewBranchesController(common)
186186
gitFlowController := controllers.NewGitFlowController(common)

pkg/gui/controllers/vertical_scroll_controller.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,33 @@ package controllers
33
import (
44
"github.com/jesseduffield/gocui"
55
"github.com/jesseduffield/lazygit/pkg/gui/types"
6-
"github.com/jesseduffield/lazygit/pkg/tasks"
76
)
87

98
// given we have no fields here, arguably we shouldn't even need this factory
109
// struct, but we're maintaining consistency with the other files.
1110
type VerticalScrollControllerFactory struct {
12-
c *ControllerCommon
13-
viewBufferManagerMap *map[string]*tasks.ViewBufferManager
11+
c *ControllerCommon
1412
}
1513

16-
func NewVerticalScrollControllerFactory(c *ControllerCommon, viewBufferManagerMap *map[string]*tasks.ViewBufferManager) *VerticalScrollControllerFactory {
14+
func NewVerticalScrollControllerFactory(c *ControllerCommon) *VerticalScrollControllerFactory {
1715
return &VerticalScrollControllerFactory{
18-
c: c,
19-
viewBufferManagerMap: viewBufferManagerMap,
16+
c: c,
2017
}
2118
}
2219

2320
func (self *VerticalScrollControllerFactory) Create(context types.Context) types.IController {
2421
return &VerticalScrollController{
25-
baseController: baseController{},
26-
c: self.c,
27-
context: context,
28-
viewBufferManagerMap: self.viewBufferManagerMap,
22+
baseController: baseController{},
23+
c: self.c,
24+
context: context,
2925
}
3026
}
3127

3228
type VerticalScrollController struct {
3329
baseController
3430
c *ControllerCommon
3531

36-
context types.Context
37-
viewBufferManagerMap *map[string]*tasks.ViewBufferManager
32+
context types.Context
3833
}
3934

4035
func (self *VerticalScrollController) Context() types.Context {
@@ -74,7 +69,7 @@ func (self *VerticalScrollController) HandleScrollDown() error {
7469
scrollHeight := self.c.UserConfig().Gui.ScrollHeight
7570
self.context.GetViewTrait().ScrollDown(scrollHeight)
7671

77-
if manager, ok := (*self.viewBufferManagerMap)[self.context.GetViewName()]; ok {
72+
if manager := self.c.GetViewBufferManagerForView(self.context.GetView()); manager != nil {
7873
manager.ReadLines(scrollHeight)
7974
}
8075

pkg/gui/global_handlers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func (gui *Gui) scrollDownView(view *gocui.View) {
2020
scrollHeight := gui.c.UserConfig().Gui.ScrollHeight
2121
view.ScrollDown(scrollHeight)
2222

23-
if manager, ok := gui.viewBufferManagerMap[view.Name()]; ok {
23+
if manager := gui.getViewBufferManagerForView(view); manager != nil {
2424
manager.ReadLines(scrollHeight)
2525
}
2626
}

pkg/gui/gui.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,15 @@ func (gui *Gui) resetState(startArgs appTypes.StartArgs) types.Context {
578578
return initialContext(contextTree, startArgs)
579579
}
580580

581+
func (self *Gui) getViewBufferManagerForView(view *gocui.View) *tasks.ViewBufferManager {
582+
manager, ok := self.viewBufferManagerMap[view.Name()]
583+
if !ok {
584+
return nil
585+
}
586+
587+
return manager
588+
}
589+
581590
func initialWindowViewNameMap(contextTree *context.ContextTree) *utils.ThreadSafeMap[string, string] {
582591
result := utils.NewThreadSafeMap[string, string]()
583592

pkg/gui/gui_common.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/jesseduffield/lazygit/pkg/config"
88
"github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers"
99
"github.com/jesseduffield/lazygit/pkg/gui/types"
10+
"github.com/jesseduffield/lazygit/pkg/tasks"
1011
)
1112

1213
// hacking this by including the gui struct for now until we split more things out
@@ -128,6 +129,10 @@ func (self *guiCommon) MainViewPairs() types.MainViewPairs {
128129
}
129130
}
130131

132+
func (self *guiCommon) GetViewBufferManagerForView(view *gocui.View) *tasks.ViewBufferManager {
133+
return self.gui.getViewBufferManagerForView(view)
134+
}
135+
131136
func (self *guiCommon) State() types.IStateAccessor {
132137
return self.gui.stateAccessor
133138
}

pkg/gui/layout.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ func (gui *Gui) layout(g *gocui.Gui) error {
3232
newMainHeight := viewDimensions["main"].Y1 - viewDimensions["main"].Y0 + 1
3333
heightDiff := newMainHeight - prevMainHeight
3434
if heightDiff > 0 {
35-
if manager, ok := gui.viewBufferManagerMap["main"]; ok {
35+
if manager := gui.getViewBufferManagerForView(gui.Views.Main); manager != nil {
3636
manager.ReadLines(heightDiff)
3737
}
38-
if manager, ok := gui.viewBufferManagerMap["secondary"]; ok {
38+
if manager := gui.getViewBufferManagerForView(gui.Views.Secondary); manager != nil {
3939
manager.ReadLines(heightDiff)
4040
}
4141
}

pkg/gui/types/common.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/jesseduffield/lazygit/pkg/commands/types/enums"
1010
"github.com/jesseduffield/lazygit/pkg/common"
1111
"github.com/jesseduffield/lazygit/pkg/config"
12+
"github.com/jesseduffield/lazygit/pkg/tasks"
1213
"github.com/jesseduffield/lazygit/pkg/utils"
1314
"github.com/sasha-s/go-deadlock"
1415
"gopkg.in/ozeidan/fuzzy-patricia.v3/patricia"
@@ -49,6 +50,9 @@ type IGuiCommon interface {
4950
// used purely for the sake of RenderToMainViews to provide the pair of main views we want to render to
5051
MainViewPairs() MainViewPairs
5152

53+
// return the view buffer manager for the given view, or nil if it doesn't have one
54+
GetViewBufferManagerForView(view *gocui.View) *tasks.ViewBufferManager
55+
5256
// returns true if command completed successfully
5357
RunSubprocess(cmdObj oscommands.ICmdObj) (bool, error)
5458
RunSubprocessAndRefresh(oscommands.ICmdObj) error

0 commit comments

Comments
 (0)