summaryrefslogtreecommitdiffstats
path: root/pkg/gui/gui.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-01-30 10:40:48 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-03-17 19:13:40 +1100
commitf97de692e32be50a54a93b75d3686da0495275cb (patch)
tree45a65ffb90d6c3897cd554f9551082e7466467fc /pkg/gui/gui.go
parent2692637fbeac353d805399dd97714c235f88f303 (diff)
move helpers into their own struct
Diffstat (limited to 'pkg/gui/gui.go')
-rw-r--r--pkg/gui/gui.go66
1 files changed, 37 insertions, 29 deletions
diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go
index 1d9ee2d76..09d508e44 100644
--- a/pkg/gui/gui.go
+++ b/pkg/gui/gui.go
@@ -68,6 +68,15 @@ func NewContextManager(initialContext types.Context) ContextManager {
}
}
+type Helpers struct {
+ refs *RefsHelper
+ bisect *controllers.BisectHelper
+ suggestions *SuggestionsHelper
+ files *FilesHelper
+ workingTree *WorkingTreeHelper
+ tags *controllers.TagsHelper
+}
+
type Repo string
// Gui wraps the gocui Gui object which handles rendering and events
@@ -143,12 +152,6 @@ type Gui struct {
PrevLayout PrevLayout
- c *types.ControllerCommon
- refsHelper *RefsHelper
- suggestionsHelper *SuggestionsHelper
- filesHelper *FilesHelper
- workingTreeHelper *WorkingTreeHelper
-
// this is the initial dir we are in upon opening lazygit. We hold onto this
// in case we want to restore it before quitting for users who have set up
// the feature for changing directory upon quit.
@@ -156,6 +159,9 @@ type Gui struct {
// is because some users want to keep track of the current lazygit directory in an outside
// process
InitialDir string
+
+ c *types.ControllerCommon
+ helpers *Helpers
}
// we keep track of some stuff from one render to the next to see if certain
@@ -571,23 +577,24 @@ func (gui *Gui) setControllers() {
getState := func() *GuiRepoState { return gui.State }
getContexts := func() context.ContextTree { return gui.State.Contexts }
// TODO: have a getGit function too
- refsHelper := NewRefsHelper(
- controllerCommon,
- gui.git,
- getState,
- )
- gui.refsHelper = refsHelper
- gui.suggestionsHelper = NewSuggestionsHelper(controllerCommon, getState, gui.refreshSuggestions)
- gui.filesHelper = NewFilesHelper(controllerCommon, gui.git, osCommand)
- gui.workingTreeHelper = NewWorkingTreeHelper(func() *filetree.FileTreeViewModel { return gui.State.FileTreeViewModel })
-
- tagsHelper := controllers.NewTagsHelper(controllerCommon, gui.git)
+ gui.helpers = &Helpers{
+ refs: NewRefsHelper(
+ controllerCommon,
+ gui.git,
+ getState,
+ ),
+ bisect: controllers.NewBisectHelper(controllerCommon, gui.git),
+ suggestions: NewSuggestionsHelper(controllerCommon, getState, gui.refreshSuggestions),
+ files: NewFilesHelper(controllerCommon, gui.git, osCommand),
+ workingTree: NewWorkingTreeHelper(func() *filetree.FileTreeViewModel { return gui.State.FileTreeViewModel }),
+ tags: controllers.NewTagsHelper(controllerCommon, gui.git),
+ }
syncController := controllers.NewSyncController(
controllerCommon,
gui.git,
gui.getCheckedOutBranch,
- gui.suggestionsHelper,
+ gui.helpers.suggestions,
gui.getSuggestedRemote,
gui.checkMergeOrRebase,
)
@@ -616,19 +623,19 @@ func (gui *Gui) setControllers() {
func() []*models.Commit { return gui.State.Commits },
gui.getSelectedPath,
gui.switchToMerge,
- gui.suggestionsHelper,
- gui.refsHelper,
- gui.filesHelper,
- gui.workingTreeHelper,
+ gui.helpers.suggestions,
+ gui.helpers.refs,
+ gui.helpers.files,
+ gui.helpers.workingTree,
),
Tags: controllers.NewTagsController(
controllerCommon,
func() *context.TagsContext { return gui.State.Contexts.Tags },
gui.git,
getContexts,
- tagsHelper,
- refsHelper,
- gui.suggestionsHelper,
+ gui.helpers.tags,
+ gui.helpers.refs,
+ gui.helpers.suggestions,
gui.switchToSubCommitsContext,
),
LocalCommits: controllers.NewLocalCommitsController(
@@ -636,8 +643,8 @@ func (gui *Gui) setControllers() {
func() types.IListContext { return gui.State.Contexts.BranchCommits },
osCommand,
gui.git,
- tagsHelper,
- refsHelper,
+ gui.helpers.tags,
+ gui.helpers.refs,
gui.getSelectedLocalCommit,
func() []*models.Commit { return gui.State.Commits },
func() int { return gui.State.Panels.Commits.SelectedLineIdx },
@@ -668,14 +675,15 @@ func (gui *Gui) setControllers() {
controllerCommon,
func() types.IListContext { return gui.State.Contexts.BranchCommits },
gui.git,
+ gui.helpers.bisect,
gui.getSelectedLocalCommit,
func() []*models.Commit { return gui.State.Commits },
),
Undo: controllers.NewUndoController(
controllerCommon,
gui.git,
- refsHelper,
- gui.workingTreeHelper,
+ gui.helpers.refs,
+ gui.helpers.workingTree,
func() []*models.Commit { return gui.State.FilteredReflogCommits },
),
Sync: syncController,