mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-31 14:24:25 +03:00
move helpers into their own struct
This commit is contained in:
@ -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,
|
||||
|
Reference in New Issue
Block a user