summaryrefslogtreecommitdiffstats
path: root/pkg/gui/controllers/helpers
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-03-23 12:53:18 +1100
committerJesse Duffield <jessedduffield@gmail.com>2023-04-30 13:19:53 +1000
commitfc91ef6a59e3cf8336b1cef78c210907c08a4cda (patch)
tree7a79860d3afbd04fc00c2b8be82b7c137299bbaa /pkg/gui/controllers/helpers
parent43251e727596cca2538548976769e47a1bfc5593 (diff)
standardise helper args
Diffstat (limited to 'pkg/gui/controllers/helpers')
-rw-r--r--pkg/gui/controllers/helpers/amend_helper.go10
-rw-r--r--pkg/gui/controllers/helpers/cherry_pick_helper.go11
-rw-r--r--pkg/gui/controllers/helpers/confirmation_helper.go38
-rw-r--r--pkg/gui/controllers/helpers/files_helper.go31
-rw-r--r--pkg/gui/controllers/helpers/gpg_helper.go21
-rw-r--r--pkg/gui/controllers/helpers/host_helper.go10
-rw-r--r--pkg/gui/controllers/helpers/merge_and_rebase_helper.go32
-rw-r--r--pkg/gui/controllers/helpers/merge_conflicts_helper.go25
-rw-r--r--pkg/gui/controllers/helpers/patch_building_helper.go30
-rw-r--r--pkg/gui/controllers/helpers/refresh_helper.go93
-rw-r--r--pkg/gui/controllers/helpers/refs_helper.go53
-rw-r--r--pkg/gui/controllers/helpers/staging_helper.go30
-rw-r--r--pkg/gui/controllers/helpers/suggestions_helper.go30
-rw-r--r--pkg/gui/controllers/helpers/tags_helper.go13
-rw-r--r--pkg/gui/controllers/helpers/upstream_helper.go7
-rw-r--r--pkg/gui/controllers/helpers/view_helper.go8
-rw-r--r--pkg/gui/controllers/helpers/window_helper.go9
-rw-r--r--pkg/gui/controllers/helpers/working_tree_helper.go31
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{