1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-30 03:23:08 +03:00

Cleanup: get rid of the variadic parameter of ContextMgr.Push

Apparently this was an attempt at working around go's lack of default arguments,
but it's very unidiomatic and a bit confusing. Make it a normal parameter
instead, so all clients have to pass it explicitly.
This commit is contained in:
Stefan Haller
2024-10-10 14:35:28 +02:00
parent 9c98fd809c
commit b3215a750c
29 changed files with 36 additions and 46 deletions

View File

@ -55,17 +55,7 @@ func (self *ContextMgr) Replace(c types.Context) {
self.Activate(c, types.OnFocusOpts{}) self.Activate(c, types.OnFocusOpts{})
} }
func (self *ContextMgr) Push(c types.Context, opts ...types.OnFocusOpts) { func (self *ContextMgr) Push(c types.Context, opts types.OnFocusOpts) {
if len(opts) > 1 {
panic("cannot pass multiple opts to Push")
}
singleOpts := types.OnFocusOpts{}
if len(opts) > 0 {
// using triple dot but you should only ever pass one of these opt structs
singleOpts = opts[0]
}
if !c.IsFocusable() { if !c.IsFocusable() {
return return
} }
@ -77,7 +67,7 @@ func (self *ContextMgr) Push(c types.Context, opts ...types.OnFocusOpts) {
} }
if contextToActivate != nil { if contextToActivate != nil {
self.Activate(contextToActivate, singleOpts) self.Activate(contextToActivate, opts)
} }
} }

View File

@ -213,7 +213,7 @@ func (self *CustomPatchOptionsMenuAction) handlePullPatchIntoNewCommit() error {
if err := self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err); err != nil { if err := self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err); err != nil {
return err return err
} }
self.c.Context().Push(self.c.Contexts().LocalCommits) self.c.Context().Push(self.c.Contexts().LocalCommits, types.OnFocusOpts{})
return nil return nil
}) })
}, },

View File

@ -120,7 +120,7 @@ func (self *FilteringMenuAction) setFiltering() error {
repoState.SetScreenMode(types.SCREEN_HALF) repoState.SetScreenMode(types.SCREEN_HALF)
} }
self.c.Context().Push(self.c.Contexts().LocalCommits) self.c.Context().Push(self.c.Contexts().LocalCommits, types.OnFocusOpts{})
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.COMMITS}, Then: func() error { return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.COMMITS}, Then: func() error {
self.c.Contexts().LocalCommits.SetSelection(0) self.c.Contexts().LocalCommits.SetSelection(0)

View File

@ -150,7 +150,7 @@ func (self *CommitsHelper) OpenCommitMessagePanel(opts *OpenCommitMessagePanelOp
self.UpdateCommitPanelView(opts.InitialMessage) self.UpdateCommitPanelView(opts.InitialMessage)
self.c.Context().Push(self.c.Contexts().CommitMessage) self.c.Context().Push(self.c.Contexts().CommitMessage, types.OnFocusOpts{})
} }
func (self *CommitsHelper) OnCommitSuccess() { func (self *CommitsHelper) OnCommitSuccess() {

View File

@ -177,7 +177,7 @@ func (self *ConfirmationHelper) CreatePopupPanel(ctx goContext.Context, opts typ
self.c.State().GetRepoState().SetCurrentPopupOpts(&opts) self.c.State().GetRepoState().SetCurrentPopupOpts(&opts)
self.c.Context().Push(self.c.Contexts().Confirmation) self.c.Context().Push(self.c.Contexts().Confirmation, types.OnFocusOpts{})
} }
func (self *ConfirmationHelper) setKeyBindings(cancel goContext.CancelFunc, opts types.CreatePopupPanelOpts) { func (self *ConfirmationHelper) setKeyBindings(cancel goContext.CancelFunc, opts types.CreatePopupPanelOpts) {

View File

@ -137,7 +137,7 @@ func (self *FixupHelper) HandleFindBaseCommitForFixupPress() error {
} }
self.c.Contexts().LocalCommits.SetSelection(index) self.c.Contexts().LocalCommits.SetSelection(index)
self.c.Context().Push(self.c.Contexts().LocalCommits) self.c.Context().Push(self.c.Contexts().LocalCommits, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -206,7 +206,7 @@ func (self *MergeAndRebaseHelper) PromptForConflictHandling() error {
{ {
Label: self.c.Tr.ViewConflictsMenuItem, Label: self.c.Tr.ViewConflictsMenuItem,
OnPress: func() error { OnPress: func() error {
self.c.Context().Push(self.c.Contexts().Files) self.c.Context().Push(self.c.Contexts().Files, types.OnFocusOpts{})
return nil return nil
}, },
}, },
@ -357,7 +357,7 @@ func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error {
if err = self.ResetMarkedBaseCommit(); err != nil { if err = self.ResetMarkedBaseCommit(); err != nil {
return err return err
} }
self.c.Context().Push(self.c.Contexts().LocalCommits) self.c.Context().Push(self.c.Contexts().LocalCommits, types.OnFocusOpts{})
return nil return nil
}, },
}, },

View File

@ -62,7 +62,7 @@ func (self *MergeConflictsHelper) EscapeMerge() error {
// files context over it. // files context over it.
// So long as both places call OnUIThread, we're fine. // So long as both places call OnUIThread, we're fine.
if self.c.Context().IsCurrent(self.c.Contexts().MergeConflicts) { if self.c.Context().IsCurrent(self.c.Contexts().MergeConflicts) {
self.c.Context().Push(self.c.Contexts().Files) self.c.Context().Push(self.c.Contexts().Files, types.OnFocusOpts{})
} }
return nil return nil
}) })
@ -93,7 +93,7 @@ func (self *MergeConflictsHelper) SwitchToMerge(path string) error {
} }
} }
self.c.Context().Push(self.c.Contexts().MergeConflicts) self.c.Context().Push(self.c.Contexts().MergeConflicts, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -118,7 +118,7 @@ func (self *RefsHelper) CheckoutRemoteBranch(fullBranchName string, localBranchN
// Switch to the branches context _before_ starting to check out the // Switch to the branches context _before_ starting to check out the
// branch, so that we see the inline status // branch, so that we see the inline status
if self.c.Context().Current() != self.c.Contexts().Branches { if self.c.Context().Current() != self.c.Contexts().Branches {
self.c.Context().Push(self.c.Contexts().Branches) self.c.Context().Push(self.c.Contexts().Branches, types.OnFocusOpts{})
} }
return self.CheckoutRef(branchName, types.CheckoutRefOptions{}) return self.CheckoutRef(branchName, types.CheckoutRefOptions{})
} }
@ -334,7 +334,7 @@ func (self *RefsHelper) NewBranch(from string, fromFormattedName string, suggest
refresh := func() error { refresh := func() error {
if self.c.Context().Current() != self.c.Contexts().Branches { if self.c.Context().Current() != self.c.Contexts().Branches {
self.c.Context().Push(self.c.Contexts().Branches) self.c.Context().Push(self.c.Contexts().Branches, types.OnFocusOpts{})
} }
self.c.Contexts().LocalCommits.SetSelection(0) self.c.Contexts().LocalCommits.SetSelection(0)

View File

@ -41,7 +41,7 @@ func (self *SearchHelper) OpenFilterPrompt(context types.IFilterableContext) err
self.OnPromptContentChanged("") self.OnPromptContentChanged("")
promptView.RenderTextArea() promptView.RenderTextArea()
self.c.Context().Push(self.c.Contexts().Search) self.c.Context().Push(self.c.Contexts().Search, types.OnFocusOpts{})
return self.c.ResetKeybindings() return self.c.ResetKeybindings()
} }
@ -58,7 +58,7 @@ func (self *SearchHelper) OpenSearchPrompt(context types.ISearchableContext) err
promptView.ClearTextArea() promptView.ClearTextArea()
promptView.RenderTextArea() promptView.RenderTextArea()
self.c.Context().Push(self.c.Contexts().Search) self.c.Context().Push(self.c.Contexts().Search, types.OnFocusOpts{})
return self.c.ResetKeybindings() return self.c.ResetKeybindings()
} }

View File

@ -114,7 +114,7 @@ func (self *StagingHelper) RefreshStagingPanel(focusOpts types.OnFocusOpts) {
} }
func (self *StagingHelper) handleStagingEscape() { func (self *StagingHelper) handleStagingEscape() {
self.c.Context().Push(self.c.Contexts().Files) self.c.Context().Push(self.c.Contexts().Files, types.OnFocusOpts{})
} }
func (self *StagingHelper) secondaryStagingFocused() bool { func (self *StagingHelper) secondaryStagingFocused() bool {

View File

@ -69,6 +69,6 @@ func (self *SubCommitsHelper) ViewSubCommits(opts ViewSubCommitsOpts) error {
self.c.PostRefreshUpdate(self.c.Contexts().SubCommits) self.c.PostRefreshUpdate(self.c.Contexts().SubCommits)
self.c.Context().Push(self.c.Contexts().SubCommits) self.c.Context().Push(self.c.Contexts().SubCommits, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -56,7 +56,7 @@ func (self *JumpToSideWindowController) goToSideWindow(window string) func() err
context := self.c.Helpers().Window.GetContextForWindow(window) context := self.c.Helpers().Window.GetContextForWindow(window)
self.c.Context().Push(context) self.c.Context().Push(context, types.OnFocusOpts{})
return nil return nil
} }
} }

View File

@ -179,7 +179,7 @@ func (self *ListController) HandleClick(opts gocui.ViewMouseBindingOpts) error {
func (self *ListController) pushContextIfNotFocused() error { func (self *ListController) pushContextIfNotFocused() error {
if !self.isFocused() { if !self.isFocused() {
self.c.Context().Push(self.context) self.c.Context().Push(self.context, types.OnFocusOpts{})
} }
return nil return nil

View File

@ -79,7 +79,7 @@ func (self *QuitActions) Escape() error {
parentContext := currentContext.GetParentContext() parentContext := currentContext.GetParentContext()
if parentContext != nil { if parentContext != nil {
// TODO: think about whether this should be marked as a return rather than adding to the stack // TODO: think about whether this should be marked as a return rather than adding to the stack
self.c.Context().Push(parentContext) self.c.Context().Push(parentContext, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -129,7 +129,7 @@ func (self *RemotesController) enter(remote *models.Remote) error {
self.c.PostRefreshUpdate(remoteBranchesContext) self.c.PostRefreshUpdate(remoteBranchesContext)
self.c.Context().Push(remoteBranchesContext) self.c.Context().Push(remoteBranchesContext, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -69,7 +69,7 @@ func (self *SideWindowController) previousSideWindow() error {
context := self.c.Helpers().Window.GetContextForWindow(newWindow) context := self.c.Helpers().Window.GetContextForWindow(newWindow)
self.c.Context().Push(context) self.c.Context().Push(context, types.OnFocusOpts{})
return nil return nil
} }
@ -93,6 +93,6 @@ func (self *SideWindowController) nextSideWindow() error {
context := self.c.Helpers().Window.GetContextForWindow(newWindow) context := self.c.Helpers().Window.GetContextForWindow(newWindow)
self.c.Context().Push(context) self.c.Context().Push(context, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -73,6 +73,6 @@ func (self *SnakeController) SetDirection(direction snake.Direction) func() erro
} }
func (self *SnakeController) Escape() error { func (self *SnakeController) Escape() error {
self.c.Context().Push(self.c.Contexts().Submodules) self.c.Context().Push(self.c.Contexts().Submodules, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -180,7 +180,7 @@ func (self *StagingController) Escape() error {
func (self *StagingController) TogglePanel() error { func (self *StagingController) TogglePanel() error {
if self.otherContext.GetState() != nil { if self.otherContext.GetState() != nil {
self.c.Context().Push(self.otherContext) self.c.Context().Push(self.otherContext, types.OnFocusOpts{})
} }
return nil return nil

View File

@ -112,7 +112,7 @@ func (self *StashController) handleStashApply(stashEntry *models.StashEntry) err
return err return err
} }
if self.c.UserConfig().Gui.SwitchToFilesAfterStashApply { if self.c.UserConfig().Gui.SwitchToFilesAfterStashApply {
self.c.Context().Push(self.c.Contexts().Files) self.c.Context().Push(self.c.Contexts().Files, types.OnFocusOpts{})
} }
return nil return nil
} }
@ -141,7 +141,7 @@ func (self *StashController) handleStashPop(stashEntry *models.StashEntry) error
return err return err
} }
if self.c.UserConfig().Gui.SwitchToFilesAfterStashPop { if self.c.UserConfig().Gui.SwitchToFilesAfterStashPop {
self.c.Context().Push(self.c.Contexts().Files) self.c.Context().Push(self.c.Contexts().Files, types.OnFocusOpts{})
} }
return nil return nil
} }

View File

@ -104,7 +104,7 @@ func (self *StatusController) onClick(opts gocui.ViewMouseBindingOpts) error {
return nil return nil
} }
self.c.Context().Push(self.Context()) self.c.Context().Push(self.Context(), types.OnFocusOpts{})
upstreamStatus := utils.Decolorise(presentation.BranchStatus(currentBranch, types.ItemOperationNone, self.c.Tr, time.Now(), self.c.UserConfig())) upstreamStatus := utils.Decolorise(presentation.BranchStatus(currentBranch, types.ItemOperationNone, self.c.Tr, time.Now(), self.c.UserConfig()))
repoName := self.c.Git().RepoPaths.RepoName() repoName := self.c.Git().RepoPaths.RepoName()

View File

@ -309,7 +309,7 @@ func (self *SubmodulesController) remove(submodule *models.SubmoduleConfig) erro
} }
func (self *SubmodulesController) easterEgg() error { func (self *SubmodulesController) easterEgg() error {
self.c.Context().Push(self.c.Contexts().Snake) self.c.Context().Push(self.c.Contexts().Snake, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -91,7 +91,7 @@ func (self *SwitchToDiffFilesController) enter() error {
return err return err
} }
self.c.Context().Push(commitFilesContext) self.c.Context().Push(commitFilesContext, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -115,7 +115,7 @@ func (self *TagsController) checkout(tag *models.Tag) error {
if err := self.c.Helpers().Refs.CheckoutRef(tag.FullRefName(), types.CheckoutRefOptions{}); err != nil { if err := self.c.Helpers().Refs.CheckoutRef(tag.FullRefName(), types.CheckoutRefOptions{}); err != nil {
return err return err
} }
self.c.Context().Push(self.c.Contexts().Branches) self.c.Context().Push(self.c.Contexts().Branches, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -38,7 +38,7 @@ func (gui *Gui) handleFocusCommandLog() error {
gui.c.State().SetShowExtrasWindow(true) gui.c.State().SetShowExtrasWindow(true)
// TODO: is this necessary? Can't I just call 'return from context'? // TODO: is this necessary? Can't I just call 'return from context'?
gui.State.Contexts.CommandLog.SetParentContext(gui.c.Context().CurrentSide()) gui.State.Contexts.CommandLog.SetParentContext(gui.c.Context().CurrentSide())
gui.c.Context().Push(gui.State.Contexts.CommandLog) gui.c.Context().Push(gui.State.Contexts.CommandLog, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -394,7 +394,7 @@ func (gui *Gui) onNewRepo(startArgs appTypes.StartArgs, contextKey types.Context
} }
} }
gui.c.Context().Push(contextToPush) gui.c.Context().Push(contextToPush, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -60,6 +60,6 @@ func (gui *Gui) createMenu(opts types.CreateMenuOptions) error {
gui.c.PostRefreshUpdate(gui.State.Contexts.Menu) gui.c.PostRefreshUpdate(gui.State.Contexts.Menu)
// TODO: ensure that if we're opened a menu from within a menu that it renders correctly // TODO: ensure that if we're opened a menu from within a menu that it renders correctly
gui.c.Context().Push(gui.State.Contexts.Menu) gui.c.Context().Push(gui.State.Contexts.Menu, types.OnFocusOpts{})
return nil return nil
} }

View File

@ -286,7 +286,7 @@ type ListItem interface {
} }
type IContextMgr interface { type IContextMgr interface {
Push(context Context, opts ...OnFocusOpts) Push(context Context, opts OnFocusOpts)
Pop() Pop()
Replace(context Context) Replace(context Context)
Activate(context Context, opts OnFocusOpts) Activate(context Context, opts OnFocusOpts)

View File

@ -72,7 +72,7 @@ func (gui *Gui) onViewTabClick(windowName string, tabIndex int) error {
return nil return nil
} }
gui.c.Context().Push(context) gui.c.Context().Push(context, types.OnFocusOpts{})
return nil return nil
} }