diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2023-03-23 12:53:18 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2023-04-30 13:19:53 +1000 |
commit | fc91ef6a59e3cf8336b1cef78c210907c08a4cda (patch) | |
tree | 7a79860d3afbd04fc00c2b8be82b7c137299bbaa /pkg/gui/controllers/helpers | |
parent | 43251e727596cca2538548976769e47a1bfc5593 (diff) |
standardise helper args
Diffstat (limited to 'pkg/gui/controllers/helpers')
18 files changed, 181 insertions, 301 deletions
diff --git a/pkg/gui/controllers/helpers/amend_helper.go b/pkg/gui/controllers/helpers/amend_helper.go index 29570d635..0e5216f83 100644 --- a/pkg/gui/controllers/helpers/amend_helper.go +++ b/pkg/gui/controllers/helpers/amend_helper.go @@ -1,24 +1,20 @@ package helpers import ( - "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/gui/types" ) type AmendHelper struct { - c *types.HelperCommon - git *commands.GitCommand + c *HelperCommon gpg *GpgHelper } func NewAmendHelper( - c *types.HelperCommon, - git *commands.GitCommand, + c *HelperCommon, gpg *GpgHelper, ) *AmendHelper { return &AmendHelper{ c: c, - git: git, gpg: gpg, } } @@ -28,7 +24,7 @@ func (self *AmendHelper) AmendHead() error { Title: self.c.Tr.AmendLastCommitTitle, Prompt: self.c.Tr.SureToAmend, HandleConfirm: func() error { - cmdObj := self.git.Commit.AmendHeadCmdObj() + cmdObj := self.c.Git().Commit.AmendHeadCmdObj() self.c.LogAction(self.c.Tr.Actions.AmendCommit) return self.gpg.WithGpgHandling(cmdObj, self.c.Tr.AmendingStatus, nil) }, diff --git a/pkg/gui/controllers/helpers/cherry_pick_helper.go b/pkg/gui/controllers/helpers/cherry_pick_helper.go index 695a726ae..2c9b7c7c9 100644 --- a/pkg/gui/controllers/helpers/cherry_pick_helper.go +++ b/pkg/gui/controllers/helpers/cherry_pick_helper.go @@ -2,7 +2,6 @@ package helpers import ( "github.com/jesseduffield/lazygit/pkg/commands/models" - "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/modes/cherrypicking" "github.com/jesseduffield/lazygit/pkg/gui/types" ) @@ -10,8 +9,6 @@ import ( type CherryPickHelper struct { c *HelperCommon - contexts *context.ContextTree - rebaseHelper *MergeAndRebaseHelper } @@ -20,12 +17,10 @@ type CherryPickHelper struct { func NewCherryPickHelper( c *HelperCommon, - contexts *context.ContextTree, rebaseHelper *MergeAndRebaseHelper, ) *CherryPickHelper { return &CherryPickHelper{ c: c, - contexts: contexts, rebaseHelper: rebaseHelper, } } @@ -111,9 +106,9 @@ func (self *CherryPickHelper) resetIfNecessary(context types.Context) error { func (self *CherryPickHelper) rerender() error { for _, context := range []types.Context{ - self.contexts.LocalCommits, - self.contexts.ReflogCommits, - self.contexts.SubCommits, + self.c.Contexts().LocalCommits, + self.c.Contexts().ReflogCommits, + self.c.Contexts().SubCommits, } { if err := self.c.PostRefreshUpdate(context); err != nil { return err diff --git a/pkg/gui/controllers/helpers/confirmation_helper.go b/pkg/gui/controllers/helpers/confirmation_helper.go index d7ccb151a..e6e3deeef 100644 --- a/pkg/gui/controllers/helpers/confirmation_helper.go +++ b/pkg/gui/controllers/helpers/confirmation_helper.go @@ -6,7 +6,6 @@ import ( "strings" "github.com/jesseduffield/gocui" - "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/style" "github.com/jesseduffield/lazygit/pkg/gui/types" @@ -15,17 +14,12 @@ import ( ) type ConfirmationHelper struct { - c *HelperCommon - contexts *context.ContextTree + c *HelperCommon } -func NewConfirmationHelper( - c *HelperCommon, - contexts *context.ContextTree, -) *ConfirmationHelper { +func NewConfirmationHelper(c *HelperCommon) *ConfirmationHelper { return &ConfirmationHelper{ - c: c, - contexts: contexts, + c: c, } } @@ -133,7 +127,7 @@ func (self *ConfirmationHelper) prepareConfirmationPanel( self.c.Views().Confirmation.Mask = runeForMask(opts.Mask) _ = self.c.Views().Confirmation.SetOrigin(0, 0) - suggestionsContext := self.contexts.Suggestions + suggestionsContext := self.c.Contexts().Suggestions suggestionsContext.State.FindSuggestions = opts.FindSuggestionsFunc if opts.FindSuggestionsFunc != nil { suggestionsView := self.c.Views().Suggestions @@ -210,7 +204,7 @@ func (self *ConfirmationHelper) CreatePopupPanel(ctx goContext.Context, opts typ self.c.State().GetRepoState().SetCurrentPopupOpts(&opts) - return self.c.PushContext(self.contexts.Confirmation) + return self.c.PushContext(self.c.Contexts().Confirmation) } func (self *ConfirmationHelper) setKeyBindings(cancel goContext.CancelFunc, opts types.CreatePopupPanelOpts) error { @@ -229,24 +223,24 @@ func (self *ConfirmationHelper) setKeyBindings(cancel goContext.CancelFunc, opts onClose := self.wrappedConfirmationFunction(cancel, opts.HandleClose) - self.contexts.Confirmation.State.OnConfirm = onConfirm - self.contexts.Confirmation.State.OnClose = onClose - self.contexts.Suggestions.State.OnConfirm = onSuggestionConfirm - self.contexts.Suggestions.State.OnClose = onClose + self.c.Contexts().Confirmation.State.OnConfirm = onConfirm + self.c.Contexts().Confirmation.State.OnClose = onClose + self.c.Contexts().Suggestions.State.OnConfirm = onSuggestionConfirm + self.c.Contexts().Suggestions.State.OnClose = onClose return nil } func (self *ConfirmationHelper) clearConfirmationViewKeyBindings() { noop := func() error { return nil } - self.contexts.Confirmation.State.OnConfirm = noop - self.contexts.Confirmation.State.OnClose = noop - self.contexts.Suggestions.State.OnConfirm = noop - self.contexts.Suggestions.State.OnClose = noop + self.c.Contexts().Confirmation.State.OnConfirm = noop + self.c.Contexts().Confirmation.State.OnClose = noop + self.c.Contexts().Suggestions.State.OnConfirm = noop + self.c.Contexts().Suggestions.State.OnClose = noop } func (self *ConfirmationHelper) getSelectedSuggestionValue() string { - selectedSuggestion := self.contexts.Suggestions.GetSelected() + selectedSuggestion := self.c.Contexts().Suggestions.GetSelected() if selectedSuggestion != nil { return selectedSuggestion.Value @@ -300,7 +294,7 @@ func (self *ConfirmationHelper) ResizePopupPanel(v *gocui.View, content string) } func (self *ConfirmationHelper) resizeMenu() { - itemCount := self.contexts.Menu.GetList().Len() + itemCount := self.c.Contexts().Menu.GetList().Len() offset := 3 panelWidth := self.getConfirmationPanelWidth() x0, y0, x1, y1 := self.getConfirmationPanelDimensionsForContentHeight(panelWidth, itemCount+offset) @@ -308,7 +302,7 @@ func (self *ConfirmationHelper) resizeMenu() { _, _ = self.c.GocuiGui().SetView(self.c.Views().Menu.Name(), x0, y0, x1, menuBottom, 0) tooltipTop := menuBottom + 1 - tooltipHeight := getMessageHeight(true, self.contexts.Menu.GetSelected().Tooltip, panelWidth) + 2 // plus 2 for the frame + tooltipHeight := getMessageHeight(true, self.c.Contexts().Menu.GetSelected().Tooltip, panelWidth) + 2 // plus 2 for the frame _, _ = self.c.GocuiGui().SetView(self.c.Views().Tooltip.Name(), x0, tooltipTop, x1, tooltipTop+tooltipHeight-1, 0) } diff --git a/pkg/gui/controllers/helpers/files_helper.go b/pkg/gui/controllers/helpers/files_helper.go index 9893123cb..1baa0191b 100644 --- a/pkg/gui/controllers/helpers/files_helper.go +++ b/pkg/gui/controllers/helpers/files_helper.go @@ -1,10 +1,5 @@ package helpers -import ( - "github.com/jesseduffield/lazygit/pkg/commands" - "github.com/jesseduffield/lazygit/pkg/commands/oscommands" -) - type IFilesHelper interface { EditFile(filename string) error EditFileAtLine(filename string, lineNumber int) error @@ -12,37 +7,29 @@ type IFilesHelper interface { } type FilesHelper struct { - c *HelperCommon - git *commands.GitCommand - os *oscommands.OSCommand + c *HelperCommon } -func NewFilesHelper( - c *HelperCommon, - git *commands.GitCommand, - os *oscommands.OSCommand, -) *FilesHelper { +func NewFilesHelper(c *HelperCommon) *FilesHelper { return &FilesHelper{ - c: c, - git: git, - os: os, + c: c, } } var _ IFilesHelper = &FilesHelper{} func (self *FilesHelper) EditFile(filename string) error { - cmdStr, editInTerminal := self.git.File.GetEditCmdStr(filename) + cmdStr, editInTerminal := self.c.Git().File.GetEditCmdStr(filename) return self.callEditor(cmdStr, editInTerminal) } func (self *FilesHelper) EditFileAtLine(filename string, lineNumber int) error { - cmdStr, editInTerminal := self.git.File.GetEditAtLineCmdStr(filename, lineNumber) + cmdStr, editInTerminal := self.c.Git().File.GetEditAtLineCmdStr(filename, lineNumber) return self.callEditor(cmdStr, editInTerminal) } func (self *FilesHelper) EditFileAtLineAndWait(filename string, lineNumber int) error { - cmdStr := self.git.File.GetEditAtLineAndWaitCmdStr(filename, lineNumber) + cmdStr := self.c.Git().File.GetEditAtLineAndWaitCmdStr(filename, lineNumber) // Always suspend, regardless of the value of the editInTerminal config, // since we want to prevent interacting with the UI until the editor @@ -53,16 +40,16 @@ func (self *FilesHelper) EditFileAtLineAndWait(filename string, lineNumber int) func (self *FilesHelper) callEditor(cmdStr string, editInTerminal bool) error { if editInTerminal { return self.c.RunSubprocessAndRefresh( - self.os.Cmd.NewShell(cmdStr), + self.c.OS().Cmd.NewShell(cmdStr), ) } - return self.os.Cmd.NewShell(cmdStr).Run() + return self.c.OS().Cmd.NewShell(cmdStr).Run() } func (self *FilesHelper) OpenFile(filename string) error { self.c.LogAction(self.c.Tr.Actions.OpenFile) - if err := self.os.OpenFile(filename); err != nil { + if err := self.c.OS().OpenFile(filename); err != nil { return self.c.Error(err) } return nil diff --git a/pkg/gui/controllers/helpers/gpg_helper.go b/pkg/gui/controllers/helpers/gpg_helper.go index 0249c560f..0cefc4208 100644 --- a/pkg/gui/controllers/helpers/gpg_helper.go +++ b/pkg/gui/controllers/helpers/gpg_helper.go @@ -3,26 +3,17 @@ package helpers import ( "fmt" - "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/oscommands" "github.com/jesseduffield/lazygit/pkg/gui/types" ) type GpgHelper struct { - c *HelperCommon - os *oscommands.OSCommand - git *commands.GitCommand + c *HelperCommon } -func NewGpgHelper( - c *HelperCommon, - os *oscommands.OSCommand, - git *commands.GitCommand, -) *GpgHelper { +func NewGpgHelper(c *HelperCommon) *GpgHelper { return &GpgHelper{ - c: c, - os: os, - git: git, + c: c, } } @@ -32,9 +23,9 @@ func NewGpgHelper( // we don't need to see a loading status if we're in a subprocess. // TODO: we shouldn't need to use a shell here, but looks like that NewShell function contains some windows specific quoting stuff. We should centralise that. func (self *GpgHelper) WithGpgHandling(cmdObj oscommands.ICmdObj, waitingStatus string, onSuccess func() error) error { - useSubprocess := self.git.Config.UsingGpg() + useSubprocess := self.c.Git().Config.UsingGpg() if useSubprocess { - success, err := self.c.RunSubprocess(self.os.Cmd.NewShell(cmdObj.ToString())) + success, err := self.c.RunSubprocess(self.c.OS().Cmd.NewShell(cmdObj.ToString())) if success && onSuccess != nil { if err := onSuccess(); err != nil { return err @@ -51,7 +42,7 @@ func (self *GpgHelper) WithGpgHandling(cmdObj oscommands.ICmdObj, waitingStatus } func (self *GpgHelper) runAndStream(cmdObj oscommands.ICmdObj, waitingStatus string, onSuccess func() error) error { - cmdObj = self.os.Cmd.NewShell(cmdObj.ToString()) + cmdObj = self.c.OS().Cmd.NewShell(cmdObj.ToString()) return self.c.WithWaitingStatus(waitingStatus, func() error { if err := cmdObj.StreamOutput().Run(); err != nil { diff --git a/pkg/gui/controllers/helpers/host_helper.go b/pkg/gui/controllers/helpers/host_helper.go index b11bc32c2..06102cc13 100644 --- a/pkg/gui/controllers/helpers/host_helper.go +++ b/pkg/gui/controllers/helpers/host_helper.go @@ -1,7 +1,6 @@ package helpers import ( - "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/hosting_service" ) @@ -13,17 +12,14 @@ type IHostHelper interface { } type HostHelper struct { - c *HelperCommon - git *commands.GitCommand + c *HelperCommon } func NewHostHelper( c *HelperCommon, - git *commands.GitCommand, ) *HostHelper { return &HostHelper{ - c: c, - git: git, + c: c, } } @@ -39,7 +35,7 @@ func (self *HostHelper) GetCommitURL(commitSha string) (string, error) { // from one invocation to the next. Note however that we're currently caching config // results so we might want to invalidate the cache here if it becomes a problem. func (self *HostHelper) getHostingServiceMgr() *hosting_service.HostingServiceMgr { - remoteUrl := self.git.Config.GetRemoteURL() + remoteUrl := self.c.Git().Config.GetRemoteURL() configServices := self.c.UserConfig.Services return hosting_service.NewHostingServiceMgr(self.c.Log, self.c.Tr, remoteUrl, configServices) } diff --git a/pkg/gui/controllers/helpers/merge_and_rebase_helper.go b/pkg/gui/controllers/helpers/merge_and_rebase_helper.go index 56154e6ad..dfa40e434 100644 --- a/pkg/gui/controllers/helpers/merge_and_rebase_helper.go +++ b/pkg/gui/controllers/helpers/merge_and_rebase_helper.go @@ -5,31 +5,23 @@ import ( "strings" "github.com/jesseduffield/generics/slices" - "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/git_commands" "github.com/jesseduffield/lazygit/pkg/commands/types/enums" - "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" ) type MergeAndRebaseHelper struct { c *HelperCommon - contexts *context.ContextTree - git *commands.GitCommand refsHelper *RefsHelper } func NewMergeAndRebaseHelper( c *HelperCommon, - contexts *context.ContextTree, - git *commands.GitCommand, refsHelper *RefsHelper, ) *MergeAndRebaseHelper { return &MergeAndRebaseHelper{ c: c, - contexts: contexts, - git: git, refsHelper: refsHelper, } } @@ -53,7 +45,7 @@ func (self *MergeAndRebaseHelper) CreateRebaseOptionsMenu() error { {option: REBASE_OPTION_ABORT, key: 'a'}, } - if self.git.Status.WorkingTreeState() == enums.REBASE_MODE_REBASING { + if self.c.Git().Status.WorkingTreeState() == enums.REBASE_MODE_REBASING { options = append(options, optionAndKey{ option: REBASE_OPTION_SKIP, key: 's', }) @@ -70,7 +62,7 @@ func (self *MergeAndRebaseHelper) CreateRebaseOptionsMenu() error { }) var title string - if self.git.Status.WorkingTreeState() == enums.REBASE_MODE_MERGING { + if self.c.Git().Status.WorkingTreeState() == enums.REBASE_MODE_MERGING { title = self.c.Tr.MergeOptionsTitle } else { title = self.c.Tr.RebaseOptionsTitle @@ -80,7 +72,7 @@ func (self *MergeAndRebaseHelper) CreateRebaseOptionsMenu() error { } func (self *MergeAndRebaseHelper) genericMergeCommand(command string) error { - status := self.git.Status.WorkingTreeState() + status := self.c.Git().Status.WorkingTreeState() if status != enums.REBASE_MODE_MERGING && status != enums.REBASE_MODE_REBASING { return self.c.ErrorMsg(self.c.Tr.NotMergingOrRebasing) @@ -104,10 +96,10 @@ func (self *MergeAndRebaseHelper) genericMergeCommand(command string) error { if status == enums.REBASE_MODE_MERGING && command != REBASE_OPTION_ABORT && self.c.UserConfig.Git.Merging.ManualCommit { // TODO: see if we should be calling more of the code from self.Git.Rebase.GenericMergeOrRebaseAction return self.c.RunSubprocessAndRefresh( - self.git.Rebase.GenericMergeOrRebaseActionCmdObj(commandType, command), + self.c.Git().Rebase.GenericMergeOrRebaseActionCmdObj(commandType, command), ) } - result := self.git.Rebase.GenericMergeOrRebaseAction(commandType, command) + result := self.c.Git().Rebase.GenericMergeOrRebaseAction(commandType, command) if err := self.CheckMergeOrRebase(result); err != nil { return err } @@ -150,7 +142,7 @@ func (self *MergeAndRebaseHelper) CheckMergeOrRebase(result error) error { Title: self.c.Tr.FoundConflictsTitle, Prompt: self.c.Tr.FoundConflicts, HandleConfirm: func() error { - return self.c.PushContext(self.contexts.Files) + return self.c.PushContext(self.c.Contexts().Files) }, HandleClose: func() error { return self.genericMergeCommand(REBASE_OPTION_ABORT) @@ -174,7 +166,7 @@ func (self *MergeAndRebaseHelper) AbortMergeOrRebaseWithConfirm() error { } func (self *MergeAndRebaseHelper) workingTreeStateNoun() string { - workingTreeState := self.git.Status.WorkingTreeState() + workingTreeState := self.c.Git().Status.WorkingTreeState() switch workingTreeState { case enums.REBASE_MODE_NONE: return "" @@ -207,7 +199,7 @@ func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error { Key: 's', OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.RebaseBranch) - err := self.git.Rebase.RebaseBranch(ref) + err := self.c.Git().Rebase.RebaseBranch(ref) return self.CheckMergeOrRebase(err) }, }, @@ -217,11 +209,11 @@ func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error { Tooltip: self.c.Tr.InteractiveRebaseTooltip, OnPress: func() error { self.c.LogAction(self.c.Tr.Actions.RebaseBranch) - err := self.git.Rebase.EditRebase(ref) + err := self.c.Git().Rebase.EditRebase(ref) if err = self.CheckMergeOrRebase(err); err != nil { return err } - return self.c.PushContext(self.contexts.LocalCommits) + return self.c.PushContext(self.c.Contexts().LocalCommits) }, }, } @@ -241,7 +233,7 @@ func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error { } func (self *MergeAndRebaseHelper) MergeRefIntoCheckedOutBranch(refName string) error { - if self.git.Branch.IsHeadDetached() { + if self.c.Git().Branch.IsHeadDetached() { return self.c.ErrorMsg("Cannot merge branch in detached head state. You might have checked out a commit directly or a remote branch, in which case you should checkout the local branch you want to be on") } checkedOutBranchName := self.refsHelper.GetCheckedOutRef().Name @@ -261,7 +253,7 @@ func (self *MergeAndRebaseHelper) MergeRefIntoCheckedOutBranch(refName string) e Prompt: prompt, HandleConfirm: func() error { self.c.LogAction(self.c.Tr.Actions.Merge) - err := self.git.Branch.Merge(refName, git_commands.MergeOpts{}) + err := self.c.Git().Branch.Merge(refName, git_commands.MergeOpts{}) return self.CheckMergeOrRebase(err) }, }) diff --git a/pkg/gui/controllers/helpers/merge_conflicts_helper.go b/pkg/gui/controllers/helpers/merge_conflicts_helper.go index c84cf4540..3610e28c8 100644 --- a/pkg/gui/controllers/helpers/merge_conflicts_helper.go +++ b/pkg/gui/controllers/helpers/merge_conflicts_helper.go @@ -1,26 +1,19 @@ package helpers import ( - "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/types" ) type MergeConflictsHelper struct { - c *HelperCommon - contexts *context.ContextTree - git *commands.GitCommand + c *HelperCommon } func NewMergeConflictsHelper( c *HelperCommon, - contexts *context.ContextTree, - git *commands.GitCommand, ) *MergeConflictsHelper { return &MergeConflictsHelper{ - c: c, - contexts: contexts, - git: git, + c: c, } } @@ -32,7 +25,7 @@ func (self *MergeConflictsHelper) SetMergeState(path string) (bool, error) { } func (self *MergeConflictsHelper) setMergeStateWithoutLock(path string) (bool, error) { - content, err := self.git.File.Cat(path) + content, err := self.c.Git().File.Cat(path) if err != nil { return false, err } @@ -63,7 +56,7 @@ func (self *MergeConflictsHelper) EscapeMerge() error { // doing this in separate UI thread so that we're not still holding the lock by the time refresh the file self.c.OnUIThread(func() error { - return self.c.PushContext(self.contexts.Files) + return self.c.PushContext(self.c.Contexts().Files) }) return nil } @@ -92,11 +85,11 @@ func (self *MergeConflictsHelper) SwitchToMerge(path string) error { } } - return self.c.PushContext(self.contexts.MergeConflicts) + return self.c.PushContext(self.c.Contexts().MergeConflicts) } func (self *MergeConflictsHelper) context() *context.MergeConflictsContext { - return self.contexts.MergeConflicts + return self.c.Contexts().MergeConflicts } func (self *MergeConflictsHelper) Render(isFocused bool) error { @@ -119,14 +112,14 @@ func (self *MergeConflictsHelper) Render(isFocused bool) error { } func (self *MergeConflictsHelper) RefreshMergeState() error { - self.contexts.MergeConflicts.GetMutex().Lock() - defer self.contexts.MergeConflicts.GetMutex().Unlock() + self.c.Contexts().MergeConflicts.GetMutex().Lock() + defer self.c.Contexts().MergeConflicts.GetMutex().Unlock() if self.c.CurrentContext().GetKey() != context.MERGE_CONFLICTS_CONTEXT_KEY { return nil } - hasConflicts, err := self.SetConflictsAndRender(self.contexts.MergeConflicts.GetState().GetPath(), true) + hasConflicts, err := self.SetConflictsAndRender(self.c.Contexts().MergeConflicts.GetState().GetPath(), true) if err != nil { return self.c.Error(err) } diff --git a/pkg/gui/controllers/helpers/patch_building_helper.go b/pkg/gui/controllers/helpers/patch_building_helper.go index 08bb8122d..38f850886 100644 --- a/pkg/gui/controllers/helpers/patch_building_helper.go +++ b/pkg/gui/controllers/helpers/patch_building_helper.go @@ -1,9 +1,7 @@ package helpers import ( - "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/types/enums" - "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/patch_exploring" "github.com/jesseduffield/lazygit/pkg/gui/types" ) @@ -13,25 +11,19 @@ type IPatchBuildingHelper interface { } type PatchBuildingHelper struct { - c *HelperCommon - git *commands.GitCommand - contexts *context.ContextTree + c *HelperCommon } func NewPatchBuildingHelper( c *HelperCommon, - git *commands.GitCommand, - contexts *context.ContextTree, ) *PatchBuildingHelper { return &PatchBuildingHelper{ - c: c, - git: git, - contexts: contexts, + c: c, } } func (self *PatchBuildingHelper) ValidateNormalWorkingTreeState() (bool, error) { - if self.git.Status.WorkingTreeState() != enums.REBASE_MODE_NONE { + if self.c.Git().Status.WorkingTreeState() != enums.REBASE_MODE_NONE { return false, self.c.ErrorMsg(self.c.Tr.CantPatchWhileRebasingError) } return true, nil @@ -44,7 +36,7 @@ func (self *PatchBuildingHelper) Escape() error { // kills the custom patch and returns us back to the commit files panel if needed func (self *PatchBuildingHelper) Reset() error { - self.git.Patch.PatchBuilder.Reset() + self.c.Git().Patch.PatchBuilder.Reset() if self.c.CurrentStaticContext().GetKind() != types.SIDE_CONTEXT { if err := self.Escape(); err != nil { @@ -68,30 +60,30 @@ func (self *PatchBuildingHelper) RefreshPatchBuildingPanel(opts types.OnFocusOpt selectedLineIdx = opts.ClickedViewLineIdx } - if !self.git.Patch.PatchBuilder.Active() { + if !self.c.Git().Patch.PatchBuilder.Active() { return self.Escape() } // get diff from commit file that's currently selected - path := self.contexts.CommitFiles.GetSelectedPath() + path := self.c.Contexts().CommitFiles.GetSelectedPath() if path == "" { return nil } - ref := self.contexts.CommitFiles.CommitFileTreeViewModel.GetRef() + ref := self.c.Contexts().CommitFiles.CommitFileTreeViewModel.GetRef() to := ref.RefName() from, reverse := self.c.Modes().Diffing.GetFromAndReverseArgsForDiff(ref.ParentRefName()) - diff, err := self.git.WorkingTree.ShowFileDiff(from, to, reverse, path, true, self.c.State().GetIgnoreWhitespaceInDiffView()) + diff, err := self.c.Git().WorkingTree.ShowFileDiff(from, to, reverse, path, true, self.c.State().GetIgnoreWhitespaceInDiffView()) if err != nil { return err } - secondaryDiff := self.git.Patch.PatchBuilder.RenderPatchForFile(path, false, false) + secondaryDiff := self.c.Git().Patch.PatchBuilder.RenderPatchForFile(path, false, false) if err != nil { return err } - context := self.contexts.CustomPatchBuilder + context := self.c.Contexts().CustomPatchBuilder oldState := context.GetState() @@ -103,7 +95,7 @@ func (self *PatchBuildingHelper) RefreshPatchBuildingPanel(opts types.OnFocusOpt mainContent := context.GetContentToRender(true) - self.contexts.CustomPatchBuilder.FocusSelection() + self.c.Contexts().CustomPatchBuilder.FocusSelection() return self.c.RenderToMainViews(types.RefreshMainOpts{ Pair: self.c.MainViewPairs().PatchBuilding, diff --git a/pkg/gui/controllers/helpers/refresh_helper.go b/pkg/gui/controllers/helpers/refresh_helper.go index 132c65545..2c3bc4c91 100644 --- a/pkg/gui/controllers/helpers/refresh_helper.go +++ b/pkg/gui/controllers/helpers/refresh_helper.go @@ -7,7 +7,6 @@ import ( "github.com/jesseduffield/generics/set" "github.com/jesseduffield/generics/slices" - "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/git_commands" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/commands/types/enums" @@ -22,8 +21,6 @@ import ( type RefreshHelper struct { c *HelperCommon - contexts *context.ContextTree - git *commands.GitCommand refsHelper *RefsHelper mergeAndRebaseHelper *MergeAndRebaseHelper patchBuildingHelper *PatchBuildingHelper @@ -34,8 +31,6 @@ type RefreshHelper struct { func NewRefreshHelper( c *HelperCommon, - contexts *context.ContextTree, - git *commands.GitCommand, refsHelper *RefsHelper, mergeAndRebaseHelper *MergeAndRebaseHelper, patchBuildingHelper *PatchBuildingHelper, @@ -45,8 +40,6 @@ func NewRefreshHelper( ) *RefreshHelper { return &RefreshHelper{ c: c, - contexts: contexts, - git: git, refsHelper: refsHelper, mergeAndRebaseHelper: mergeAndRebaseHelper, patchBuildingHelper: patchBuildingHelper, @@ -239,7 +232,7 @@ func (self *RefreshHelper) refreshCommits() { go utils.Safe(func() { _ = self.refreshCommitsWithLimit() - ctx, ok := self.contexts.CommitFiles.GetParentContext() + ctx, ok := self.c.Contexts().CommitFiles.GetParentContext() if ok && ctx.GetKey() == context.LOCAL_COMMITS_CONTEXT_KEY { // This makes sense when we've e.g. just amended a commit, meaning we get a new commit SHA at the same position. // However if we've just added a brand new commit, it pushes the list down by one and so we would end up @@ -247,10 +240,10 @@ func (self *RefreshHelper) refreshCommits() { // Ideally we would know when to refresh the commit files context and when not to, // or perhaps we could just pop that context off the stack whenever cycling windows. // For now the awkwardness remains. - commit := self.contexts.LocalCommits.GetSelected() + commit := self.c.Contexts().LocalCommits.GetSelected() if commit != nil { - self.contexts.CommitFiles.SetRef(commit) - self.contexts.CommitFiles.SetTitleRef(commit.RefName()) + self.c.Contexts().CommitFiles.SetRef(commit) + self.c.Contexts().CommitFiles.SetTitleRef(commit.RefName()) _ = self.refreshCommitFilesContext() } } @@ -264,34 +257,34 @@ func (self *RefreshHelper) refreshCommitsWithLimit() error { self.c.Mutexes().LocalCommitsMutex.Lock() defer self.c.Mutexes().LocalCommitsMutex.Unlock() - commits, err := self.git.Loaders.CommitLoader.GetCommits( + commits, err := self.c.Git().Loaders.CommitLoader.GetCommits( git_commands.GetCommitsOptions{ |