mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-11 20:36:03 +02: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:
parent
9c98fd809c
commit
b3215a750c
29 changed files with 36 additions and 46 deletions
|
@ -55,17 +55,7 @@ func (self *ContextMgr) Replace(c types.Context) {
|
|||
self.Activate(c, 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]
|
||||
}
|
||||
|
||||
func (self *ContextMgr) Push(c types.Context, opts types.OnFocusOpts) {
|
||||
if !c.IsFocusable() {
|
||||
return
|
||||
}
|
||||
|
@ -77,7 +67,7 @@ func (self *ContextMgr) Push(c types.Context, opts ...types.OnFocusOpts) {
|
|||
}
|
||||
|
||||
if contextToActivate != nil {
|
||||
self.Activate(contextToActivate, singleOpts)
|
||||
self.Activate(contextToActivate, opts)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -213,7 +213,7 @@ func (self *CustomPatchOptionsMenuAction) handlePullPatchIntoNewCommit() error {
|
|||
if err := self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err); err != nil {
|
||||
return err
|
||||
}
|
||||
self.c.Context().Push(self.c.Contexts().LocalCommits)
|
||||
self.c.Context().Push(self.c.Contexts().LocalCommits, types.OnFocusOpts{})
|
||||
return nil
|
||||
})
|
||||
},
|
||||
|
|
|
@ -120,7 +120,7 @@ func (self *FilteringMenuAction) setFiltering() error {
|
|||
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 {
|
||||
self.c.Contexts().LocalCommits.SetSelection(0)
|
||||
|
|
|
@ -150,7 +150,7 @@ func (self *CommitsHelper) OpenCommitMessagePanel(opts *OpenCommitMessagePanelOp
|
|||
|
||||
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() {
|
||||
|
|
|
@ -177,7 +177,7 @@ func (self *ConfirmationHelper) CreatePopupPanel(ctx goContext.Context, opts typ
|
|||
|
||||
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) {
|
||||
|
|
|
@ -137,7 +137,7 @@ func (self *FixupHelper) HandleFindBaseCommitForFixupPress() error {
|
|||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
@ -206,7 +206,7 @@ func (self *MergeAndRebaseHelper) PromptForConflictHandling() error {
|
|||
{
|
||||
Label: self.c.Tr.ViewConflictsMenuItem,
|
||||
OnPress: func() error {
|
||||
self.c.Context().Push(self.c.Contexts().Files)
|
||||
self.c.Context().Push(self.c.Contexts().Files, types.OnFocusOpts{})
|
||||
return nil
|
||||
},
|
||||
},
|
||||
|
@ -357,7 +357,7 @@ func (self *MergeAndRebaseHelper) RebaseOntoRef(ref string) error {
|
|||
if err = self.ResetMarkedBaseCommit(); err != nil {
|
||||
return err
|
||||
}
|
||||
self.c.Context().Push(self.c.Contexts().LocalCommits)
|
||||
self.c.Context().Push(self.c.Contexts().LocalCommits, types.OnFocusOpts{})
|
||||
return nil
|
||||
},
|
||||
},
|
||||
|
|
|
@ -62,7 +62,7 @@ func (self *MergeConflictsHelper) EscapeMerge() error {
|
|||
// files context over it.
|
||||
// So long as both places call OnUIThread, we're fine.
|
||||
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
|
||||
})
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ func (self *RefsHelper) CheckoutRemoteBranch(fullBranchName string, localBranchN
|
|||
// Switch to the branches context _before_ starting to check out the
|
||||
// branch, so that we see the inline status
|
||||
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{})
|
||||
}
|
||||
|
@ -334,7 +334,7 @@ func (self *RefsHelper) NewBranch(from string, fromFormattedName string, suggest
|
|||
|
||||
refresh := func() error {
|
||||
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)
|
||||
|
|
|
@ -41,7 +41,7 @@ func (self *SearchHelper) OpenFilterPrompt(context types.IFilterableContext) err
|
|||
self.OnPromptContentChanged("")
|
||||
promptView.RenderTextArea()
|
||||
|
||||
self.c.Context().Push(self.c.Contexts().Search)
|
||||
self.c.Context().Push(self.c.Contexts().Search, types.OnFocusOpts{})
|
||||
|
||||
return self.c.ResetKeybindings()
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ func (self *SearchHelper) OpenSearchPrompt(context types.ISearchableContext) err
|
|||
promptView.ClearTextArea()
|
||||
promptView.RenderTextArea()
|
||||
|
||||
self.c.Context().Push(self.c.Contexts().Search)
|
||||
self.c.Context().Push(self.c.Contexts().Search, types.OnFocusOpts{})
|
||||
|
||||
return self.c.ResetKeybindings()
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ func (self *StagingHelper) RefreshStagingPanel(focusOpts types.OnFocusOpts) {
|
|||
}
|
||||
|
||||
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 {
|
||||
|
|
|
@ -69,6 +69,6 @@ func (self *SubCommitsHelper) ViewSubCommits(opts ViewSubCommitsOpts) error {
|
|||
|
||||
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
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ func (self *JumpToSideWindowController) goToSideWindow(window string) func() err
|
|||
|
||||
context := self.c.Helpers().Window.GetContextForWindow(window)
|
||||
|
||||
self.c.Context().Push(context)
|
||||
self.c.Context().Push(context, types.OnFocusOpts{})
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
|
|
@ -179,7 +179,7 @@ func (self *ListController) HandleClick(opts gocui.ViewMouseBindingOpts) error {
|
|||
|
||||
func (self *ListController) pushContextIfNotFocused() error {
|
||||
if !self.isFocused() {
|
||||
self.c.Context().Push(self.context)
|
||||
self.c.Context().Push(self.context, types.OnFocusOpts{})
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -79,7 +79,7 @@ func (self *QuitActions) Escape() error {
|
|||
parentContext := currentContext.GetParentContext()
|
||||
if parentContext != nil {
|
||||
// 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
|
||||
}
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ func (self *RemotesController) enter(remote *models.Remote) error {
|
|||
|
||||
self.c.PostRefreshUpdate(remoteBranchesContext)
|
||||
|
||||
self.c.Context().Push(remoteBranchesContext)
|
||||
self.c.Context().Push(remoteBranchesContext, types.OnFocusOpts{})
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ func (self *SideWindowController) previousSideWindow() error {
|
|||
|
||||
context := self.c.Helpers().Window.GetContextForWindow(newWindow)
|
||||
|
||||
self.c.Context().Push(context)
|
||||
self.c.Context().Push(context, types.OnFocusOpts{})
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -93,6 +93,6 @@ func (self *SideWindowController) nextSideWindow() error {
|
|||
|
||||
context := self.c.Helpers().Window.GetContextForWindow(newWindow)
|
||||
|
||||
self.c.Context().Push(context)
|
||||
self.c.Context().Push(context, types.OnFocusOpts{})
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -73,6 +73,6 @@ func (self *SnakeController) SetDirection(direction snake.Direction) func() erro
|
|||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
|
|
@ -180,7 +180,7 @@ func (self *StagingController) Escape() error {
|
|||
|
||||
func (self *StagingController) TogglePanel() error {
|
||||
if self.otherContext.GetState() != nil {
|
||||
self.c.Context().Push(self.otherContext)
|
||||
self.c.Context().Push(self.otherContext, types.OnFocusOpts{})
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -112,7 +112,7 @@ func (self *StashController) handleStashApply(stashEntry *models.StashEntry) err
|
|||
return err
|
||||
}
|
||||
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
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ func (self *StashController) handleStashPop(stashEntry *models.StashEntry) error
|
|||
return err
|
||||
}
|
||||
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
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ func (self *StatusController) onClick(opts gocui.ViewMouseBindingOpts) error {
|
|||
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()))
|
||||
repoName := self.c.Git().RepoPaths.RepoName()
|
||||
|
|
|
@ -309,7 +309,7 @@ func (self *SubmodulesController) remove(submodule *models.SubmoduleConfig) erro
|
|||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ func (self *SwitchToDiffFilesController) enter() error {
|
|||
return err
|
||||
}
|
||||
|
||||
self.c.Context().Push(commitFilesContext)
|
||||
self.c.Context().Push(commitFilesContext, types.OnFocusOpts{})
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
return err
|
||||
}
|
||||
self.c.Context().Push(self.c.Contexts().Branches)
|
||||
self.c.Context().Push(self.c.Contexts().Branches, types.OnFocusOpts{})
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ func (gui *Gui) handleFocusCommandLog() error {
|
|||
gui.c.State().SetShowExtrasWindow(true)
|
||||
// TODO: is this necessary? Can't I just call 'return from context'?
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -60,6 +60,6 @@ func (gui *Gui) createMenu(opts types.CreateMenuOptions) error {
|
|||
gui.c.PostRefreshUpdate(gui.State.Contexts.Menu)
|
||||
|
||||
// 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
|
||||
}
|
||||
|
|
|
@ -286,7 +286,7 @@ type ListItem interface {
|
|||
}
|
||||
|
||||
type IContextMgr interface {
|
||||
Push(context Context, opts ...OnFocusOpts)
|
||||
Push(context Context, opts OnFocusOpts)
|
||||
Pop()
|
||||
Replace(context Context)
|
||||
Activate(context Context, opts OnFocusOpts)
|
||||
|
|
|
@ -72,7 +72,7 @@ func (gui *Gui) onViewTabClick(windowName string, tabIndex int) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
gui.c.Context().Push(context)
|
||||
gui.c.Context().Push(context, types.OnFocusOpts{})
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue