diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-01-29 19:09:20 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-03-17 19:13:40 +1100 |
commit | 138be04e6575f2bd087630e49d122af578c78bf6 (patch) | |
tree | ed038641d6871e49ff426096f300e6b3b3ab4f1e /pkg/gui/controllers | |
parent | 1a74ed32143f826104e1d60f4392d2d8ba53cd80 (diff) |
refactor contexts code
Diffstat (limited to 'pkg/gui/controllers')
-rw-r--r-- | pkg/gui/controllers/bisect_controller.go | 17 | ||||
-rw-r--r-- | pkg/gui/controllers/controller_common.go | 10 | ||||
-rw-r--r-- | pkg/gui/controllers/files_controller.go | 25 | ||||
-rw-r--r-- | pkg/gui/controllers/local_commits_controller.go | 41 | ||||
-rw-r--r-- | pkg/gui/controllers/menu_controller.go | 9 | ||||
-rw-r--r-- | pkg/gui/controllers/remotes_controller.go | 15 | ||||
-rw-r--r-- | pkg/gui/controllers/submodules_controller.go | 19 | ||||
-rw-r--r-- | pkg/gui/controllers/sync_controller.go | 11 | ||||
-rw-r--r-- | pkg/gui/controllers/tags_controller.go | 28 | ||||
-rw-r--r-- | pkg/gui/controllers/types.go | 22 | ||||
-rw-r--r-- | pkg/gui/controllers/undo_controller.go | 7 |
11 files changed, 80 insertions, 124 deletions
diff --git a/pkg/gui/controllers/bisect_controller.go b/pkg/gui/controllers/bisect_controller.go index 06602a445..8bfcba5a9 100644 --- a/pkg/gui/controllers/bisect_controller.go +++ b/pkg/gui/controllers/bisect_controller.go @@ -8,12 +8,11 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/git_commands" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/config" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" ) type BisectController struct { - c *ControllerCommon + c *types.ControllerCommon getContext func() types.IListContext git *commands.GitCommand @@ -24,7 +23,7 @@ type BisectController struct { var _ types.IController = &BisectController{} func NewBisectController( - c *ControllerCommon, + c *types.ControllerCommon, getContext func() types.IListContext, git *commands.GitCommand, @@ -80,7 +79,7 @@ func (self *BisectController) openMidBisectMenu(info *git_commands.BisectInfo, c // ref, because we'll be reloading our commits in that case. waitToReselect := selectCurrentAfter && !self.git.Bisect.ReachableFromStart(info) - menuItems := []*popup.MenuItem{ + menuItems := []*types.MenuItem{ { DisplayString: fmt.Sprintf(self.c.Tr.Bisect.Mark, commit.ShortSha(), info.NewTerm()), OnPress: func() error { @@ -122,16 +121,16 @@ func (self *BisectController) openMidBisectMenu(info *git_commands.BisectInfo, c }, } - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.Bisect.BisectMenuTitle, Items: menuItems, }) } func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo, commit *models.Commit) error { - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.Bisect.BisectMenuTitle, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayString: fmt.Sprintf(self.c.Tr.Bisect.MarkStart, commit.ShortSha(), info.NewTerm()), OnPress: func() error { @@ -167,7 +166,7 @@ func (self *BisectController) openStartBisectMenu(info *git_commands.BisectInfo, } func (self *BisectController) Reset() error { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.Bisect.ResetTitle, Prompt: self.c.Tr.Bisect.ResetPrompt, HandleConfirm: func() error { @@ -192,7 +191,7 @@ func (self *BisectController) showBisectCompleteMessage(candidateShas []string) return self.c.Error(err) } - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.Bisect.CompleteTitle, Prompt: fmt.Sprintf(prompt, strings.TrimSpace(formattedCommits)), HandleConfirm: func() error { diff --git a/pkg/gui/controllers/controller_common.go b/pkg/gui/controllers/controller_common.go deleted file mode 100644 index 013439945..000000000 --- a/pkg/gui/controllers/controller_common.go +++ /dev/null @@ -1,10 +0,0 @@ -package controllers - -import "github.com/jesseduffield/lazygit/pkg/common" - -// if Go let me do private struct embedding of structs with public fields (which it should) -// I would just do that. But alas. -type ControllerCommon struct { - *common.Common - IGuiCommon -} diff --git a/pkg/gui/controllers/files_controller.go b/pkg/gui/controllers/files_controller.go index 8f4641147..e2626078d 100644 --- a/pkg/gui/controllers/files_controller.go +++ b/pkg/gui/controllers/files_controller.go @@ -12,7 +12,6 @@ import ( "github.com/jesseduffield/lazygit/pkg/config" "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/filetree" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -22,7 +21,7 @@ type FilesController struct { // case I would actually prefer a _zero_ letter variable name in the form of // struct embedding, but Go does not allow hiding public fields in an embedded struct // to the client - c *ControllerCommon + c *types.ControllerCommon getContext func() types.IListContext git *commands.GitCommand os *oscommands.OSCommand @@ -48,7 +47,7 @@ type FilesController struct { var _ types.IController = &FilesController{} func NewFilesController( - c *ControllerCommon, + c *types.ControllerCommon, getContext func() types.IListContext, git *commands.GitCommand, os *oscommands.OSCommand, @@ -344,7 +343,7 @@ func (self *FilesController) ignore(node *filetree.FileNode) error { } if node.GetIsTracked() { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.IgnoreTracked, Prompt: self.c.Tr.IgnoreTrackedPrompt, HandleConfirm: func() error { @@ -461,7 +460,7 @@ func (self *FilesController) HandleCommitPress() error { } func (self *FilesController) promptToStageAllAndRetry(retry func() error) error { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.NoFilesStagedTitle, Prompt: self.c.Tr.NoFilesStagedPrompt, HandleConfirm: func() error { @@ -491,7 +490,7 @@ func (self *FilesController) handleAmendCommitPress() error { return self.c.ErrorMsg(self.c.Tr.NoCommitToAmend) } - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: strings.Title(self.c.Tr.AmendLastCommit), Prompt: self.c.Tr.SureToAmend, HandleConfirm: func() error { @@ -520,9 +519,9 @@ func (self *FilesController) HandleCommitEditorPress() error { } func (self *FilesController) handleStatusFilterPressed() error { - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.FilteringMenuTitle, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayString: self.c.Tr.FilterStagedFiles, OnPress: func() error { @@ -577,7 +576,7 @@ func (self *FilesController) switchToMerge() error { } func (self *FilesController) handleCustomCommand() error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.CustomCommand, FindSuggestionsFunc: self.suggestionsHelper.GetCustomCommandsHistorySuggestionsFunc(), HandleConfirm: func(command string) error { @@ -602,9 +601,9 @@ func (self *FilesController) handleCustomCommand() error { } func (self *FilesController) createStashMenu() error { - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.LcStashOptions, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayString: self.c.Tr.LcStashAllChanges, OnPress: func() error { @@ -665,7 +664,7 @@ func (self *FilesController) toggleTreeView() error { } func (self *FilesController) OpenMergeTool() error { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.MergeToolTitle, Prompt: self.c.Tr.MergeToolPrompt, HandleConfirm: func() error { @@ -704,7 +703,7 @@ func (self *FilesController) handleStashSave(stashFunc func(message string) erro return self.c.ErrorMsg(self.c.Tr.NoTrackedStagedFilesStash) } - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.StashChanges, HandleConfirm: func(stashComment string) error { if err := stashFunc(stashComment); err != nil { diff --git a/pkg/gui/controllers/local_commits_controller.go b/pkg/gui/controllers/local_commits_controller.go index 8bc6f5d9e..7b84fe999 100644 --- a/pkg/gui/controllers/local_commits_controller.go +++ b/pkg/gui/controllers/local_commits_controller.go @@ -9,7 +9,6 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/commands/oscommands" "github.com/jesseduffield/lazygit/pkg/config" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -26,7 +25,7 @@ type ( ) type LocalCommitsController struct { - c *ControllerCommon + c *types.ControllerCommon getContext func() types.IListContext os *oscommands.OSCommand git *commands.GitCommand @@ -50,7 +49,7 @@ type LocalCommitsController struct { var _ types.IController = &LocalCommitsController{} func NewLocalCommitsController( - c *ControllerCommon, + c *types.ControllerCommon, getContext func() types.IListContext, os *oscommands.OSCommand, git *commands.GitCommand, @@ -241,7 +240,7 @@ func (self *LocalCommitsController) squashDown() error { return nil } - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.Squash, Prompt: self.c.Tr.SureSquashThisCommit, HandleConfirm: func() error { @@ -266,7 +265,7 @@ func (self *LocalCommitsController) fixup() error { return nil } - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.Fixup, Prompt: self.c.Tr.SureFixupThisCommit, HandleConfirm: func() error { @@ -293,7 +292,7 @@ func (self *LocalCommitsController) reword(commit *models.Commit) error { } // TODO: use the commit message panel here - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.LcRewordCommit, InitialContent: message, HandleConfirm: func(response string) error { @@ -339,7 +338,7 @@ func (self *LocalCommitsController) drop() error { return nil } - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.DeleteCommitTitle, Prompt: self.c.Tr.DeleteCommitPrompt, HandleConfirm: func() error { @@ -488,7 +487,7 @@ func (self *LocalCommitsController) handleCommitMoveUp() error { } func (self *LocalCommitsController) handleCommitAmendTo() error { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.AmendCommitTitle, Prompt: self.c.Tr.AmendCommitPrompt, HandleConfirm: func() error { @@ -505,7 +504,7 @@ func (self *LocalCommitsController) handleCommitRevert(commit *models.Commit) er if commit.IsMerge() { return self.createRevertMergeCommitMenu(commit) } else { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.Actions.RevertCommit, Prompt: utils.ResolvePlaceholderString( self.c.Tr.ConfirmRevertCommit, @@ -524,7 +523,7 @@ func (self *LocalCommitsController) handleCommitRevert(commit *models.Commit) er } func (self *LocalCommitsController) createRevertMergeCommitMenu(commit *models.Commit) error { - menuItems := make([]*popup.MenuItem, len(commit.Parents)) + menuItems := make([]*types.MenuItem, len(commit.Parents)) for i, parentSha := range commit.Parents { i := i message, err := self.git.Commit.GetCommitMessageFirstLine(parentSha) @@ -532,7 +531,7 @@ func (self *LocalCommitsController) createRevertMergeCommitMenu(commit *models.C return self.c.Error(err) } - menuItems[i] = &popup.MenuItem{ + menuItems[i] = &types.MenuItem{ DisplayString: fmt.Sprintf("%s: %s", utils.SafeTruncate(parentSha, 8), message), OnPress: func() error { parentNumber := i + 1 @@ -545,7 +544,7 @@ func (self *LocalCommitsController) createRevertMergeCommitMenu(commit *models.C } } - return self.c.Menu(popup.CreateMenuOptions{Title: self.c.Tr.SelectParentCommitForMerge, Items: menuItems}) + return self.c.Menu(types.CreateMenuOptions{Title: self.c.Tr.SelectParentCommitForMerge, Items: menuItems}) } func (self *LocalCommitsController) afterRevertCommit() error { @@ -572,7 +571,7 @@ func (self *LocalCommitsController) handleCreateFixupCommit(commit *models.Commi }, ) - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.CreateFixupCommit, Prompt: prompt, HandleConfirm: func() error { @@ -594,7 +593,7 @@ func (self *LocalCommitsController) handleSquashAllAboveFixupCommits(commit *mod }, ) - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.SquashAboveCommits, Prompt: prompt, HandleConfirm: func() error { @@ -612,7 +611,7 @@ func (self *LocalCommitsController) handleTagCommit(commit *models.Commit) error } func (self *LocalCommitsController) handleCheckoutCommit(commit *models.Commit) error { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.LcCheckoutCommit, Prompt: self.c.Tr.SureCheckoutThisCommit, HandleConfirm: func() error { @@ -669,9 +668,9 @@ func (self *LocalCommitsController) handleCopySelectedCommitMessageToClipboard(c } func (self *LocalCommitsController) handleOpenLogMenu() error { - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.LogMenuTitle, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayString: self.c.Tr.ToggleShowGitGraphAll, OnPress: func() error { @@ -696,9 +695,9 @@ func (self *LocalCommitsController) handleOpenLogMenu() error { return nil } } - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.LogMenuTitle, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayString: "always", OnPress: onPress("always"), @@ -728,9 +727,9 @@ func (self *LocalCommitsController) handleOpenLogMenu() error { } } - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.LogMenuTitle, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayString: "topological (topo-order)", OnPress: onPress("topo-order"), diff --git a/pkg/gui/controllers/menu_controller.go b/pkg/gui/controllers/menu_controller.go index fe545657b..e03666ad5 100644 --- a/pkg/gui/controllers/menu_controller.go +++ b/pkg/gui/controllers/menu_controller.go @@ -3,23 +3,22 @@ package controllers import ( "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/config" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" ) type MenuController struct { - c *ControllerCommon + c *types.ControllerCommon getContext func() types.IListContext - getSelectedMenuItem func() *popup.MenuItem + getSelectedMenuItem func() *types.MenuItem } var _ types.IController = &MenuController{} func NewMenuController( - c *ControllerCommon, + c *types.ControllerCommon, getContext func() types.IListContext, - getSelectedMenuItem func() *popup.MenuItem, + getSelectedMenuItem func() *types.MenuItem, ) *MenuController { return &MenuController{ c: c, diff --git a/pkg/gui/controllers/remotes_controller.go b/pkg/gui/controllers/remotes_controller.go index c14f3e5ba..bc91f40e7 100644 --- a/pkg/gui/controllers/remotes_controller.go +++ b/pkg/gui/controllers/remotes_controller.go @@ -6,13 +6,12 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/config" "github.com/jesseduffield/lazygit/pkg/gui/context" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" ) type RemotesController struct { - c *ControllerCommon + c *types.ControllerCommon getContext func() types.IListContext git *commands.GitCommand @@ -24,7 +23,7 @@ type RemotesController struct { var _ types.IController = &RemotesController{} func NewRemotesController( - c *ControllerCommon, + c *types.ControllerCommon, getContext func() types.IListContext, git *commands.GitCommand, getContexts func() context.ContextTree, @@ -90,10 +89,10 @@ func (self *RemotesController) enter(remote *models.Remote) error { } func (self *RemotesController) add() error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.LcNewRemoteName, HandleConfirm: func(remoteName string) error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.LcNewRemoteUrl, HandleConfirm: func(remoteUrl string) error { self.c.LogAction(self.c.Tr.Actions.AddRemote) @@ -108,7 +107,7 @@ func (self *RemotesController) add() error { } func (self *RemotesController) remove(remote *models.Remote) error { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.LcRemoveRemote, Prompt: self.c.Tr.LcRemoveRemotePrompt + " '" + remote.Name + "'?", HandleConfirm: func() error { @@ -130,7 +129,7 @@ func (self *RemotesController) edit(remote *models.Remote) error { }, ) - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: editNameMessage, InitialContent: remote.Name, HandleConfirm: func(updatedRemoteName string) error { @@ -154,7 +153,7 @@ func (self *RemotesController) edit(remote *models.Remote) error { url = urls[0] } - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: editUrlMessage, InitialContent: url, HandleConfirm: func(updatedRemoteUrl string) error { diff --git a/pkg/gui/controllers/submodules_controller.go b/pkg/gui/controllers/submodules_controller.go index a380154ae..851d11983 100644 --- a/pkg/gui/controllers/submodules_controller.go +++ b/pkg/gui/controllers/submodules_controller.go @@ -9,13 +9,12 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/config" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/style" "github.com/jesseduffield/lazygit/pkg/gui/types" ) type SubmodulesController struct { - c *ControllerCommon + c *types.ControllerCommon context types.IListContext git *commands.GitCommand @@ -26,7 +25,7 @@ type SubmodulesController struct { var _ types.IController = &SubmodulesController{} func NewSubmodulesController( - c *ControllerCommon, + c *types.ControllerCommon, context types.IListContext, git *commands.GitCommand, enterSubmodule func(submodule *models.SubmoduleConfig) error, @@ -93,17 +92,17 @@ func (self *SubmodulesController) enter(submodule *models.SubmoduleConfig) error } func (self *SubmodulesController) add() error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.LcNewSubmoduleUrl, HandleConfirm: func(submoduleUrl string) error { nameSuggestion := filepath.Base(strings.TrimSuffix(submoduleUrl, filepath.Ext(submoduleUrl))) - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.LcNewSubmoduleName, InitialContent: nameSuggestion, HandleConfirm: func(submoduleName string) error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.LcNewSubmodulePath, InitialContent: submoduleName, HandleConfirm: func(submodulePath string) error { @@ -125,7 +124,7 @@ func (self *SubmodulesController) add() error { } func (self *SubmodulesController) editURL(submodule *models.SubmoduleConfig) error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: fmt.Sprintf(self.c.Tr.LcUpdateSubmoduleUrl, submodule.Name), InitialContent: submodule.Url, HandleConfirm: func(newUrl string) error { @@ -155,9 +154,9 @@ func (self *SubmodulesController) init(submodule *models.SubmoduleConfig) error } func (self *SubmodulesController) openBulkActionsMenu() error { - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.LcBulkSubmoduleOptions, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayStrings: []string{self.c.Tr.LcBulkInitSubmodules, style.FgGreen.Sprint(self.git.Submodule.BulkInitCmdObj().ToString())}, OnPress: func() error { @@ -215,7 +214,7 @@ func (self *SubmodulesController) update(submodule *models.SubmoduleConfig) erro } func (self *SubmodulesController) remove(submodule *models.SubmoduleConfig) error { - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.RemoveSubmodule, Prompt: fmt.Sprintf(self.c.Tr.RemoveSubmodulePrompt, submodule.Name), HandleConfirm: func() error { diff --git a/pkg/gui/controllers/sync_controller.go b/pkg/gui/controllers/sync_controller.go index a2fda53a1..e84e3f731 100644 --- a/pkg/gui/controllers/sync_controller.go +++ b/pkg/gui/controllers/sync_controller.go @@ -8,7 +8,6 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/git_commands" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/config" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" ) @@ -17,7 +16,7 @@ type SyncController struct { // case I would actually prefer a _zero_ letter variable name in the form of // struct embedding, but Go does not allow hiding public fields in an embedded struct // to the client - c *ControllerCommon + c *types.ControllerCommon git *commands.GitCommand getCheckedOutBranch func() *models.Branch @@ -29,7 +28,7 @@ type SyncController struct { var _ types.IController = &SyncController{} func NewSyncController( - c *ControllerCommon, + c *types.ControllerCommon, git *commands.GitCommand, getCheckedOutBranch func() *models.Branch, suggestionsHelper ISuggestionsHelper, @@ -160,7 +159,7 @@ func (self *SyncController) pull(currentBranch *models.Branch) error { func (self *SyncController) promptForUpstream(currentBranch *models.Branch, onConfirm func(string) error) error { suggestedRemote := self.getSuggestedRemote() - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.EnterUpstream, InitialContent: suggestedRemote + " " + currentBranch.Name, FindSuggestionsFunc: self.suggestionsHelper.GetRemoteBranchesSuggestionsFunc(" "), @@ -219,7 +218,7 @@ func (self *SyncController) pushAux(opts pushOpts) error { _ = self.c.ErrorMsg(self.c.Tr.UpdatesRejectedAndForcePushDisabled) return nil } - _ = self.c.Ask(popup.AskOpts{ + _ = self.c.Ask(types.AskOpts{ Title: self.c.Tr.ForcePush, Prompt: self.c.Tr.ForcePushPrompt, HandleConfirm: func() error { @@ -243,7 +242,7 @@ func (self *SyncController) requestToForcePush(opts pushOpts) error { return self.c.ErrorMsg(self.c.Tr.ForcePushDisabled) } - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.ForcePush, Prompt: self.c.Tr.ForcePushPrompt, HandleConfirm: func() error { diff --git a/pkg/gui/controllers/tags_controller.go b/pkg/gui/controllers/tags_controller.go index a8a60f8b8..c9967c2e2 100644 --- a/pkg/gui/controllers/tags_controller.go +++ b/pkg/gui/controllers/tags_controller.go @@ -5,35 +5,32 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/config" "github.com/jesseduffield/lazygit/pkg/gui/context" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" ) type TagsController struct { - c *ControllerCommon - getContext func() types.IListContext + c *types.ControllerCommon + getContext func() *context.TagsContext git *commands.GitCommand getContexts func() context.ContextTree refHelper IRefHelper suggestionsHelper ISuggestionsHelper - getSelectedTag func() *models.Tag switchToSubCommitsContext func(string) error } var _ types.IController = &TagsController{} func NewTagsController( - c *ControllerCommon, - getContext func() types.IListContext, + c *types.ControllerCommon, + getContext func() *context.TagsContext, git *commands.GitCommand, getContexts func() context.ContextTree, refHelper IRefHelper, suggestionsHelper ISuggestionsHelper, - getSelectedTag func() *models.Tag, switchToSubCommitsContext func(string) error, ) *TagsController { return &TagsController{ @@ -44,7 +41,6 @@ func NewTagsController( refHelper: refHelper, suggestionsHelper: suggestionsHelper, - getSelectedTag: getSelectedTag, switchToSubCommitsContext: switchToSubCommitsContext, } } @@ -107,7 +103,7 @@ func (self *TagsController) delete(tag *models.Tag) error { }, ) - return self.c.Ask(popup.AskOpts{ + return self.c.Ask(types.AskOpts{ Title: self.c.Tr.DeleteTagTitle, Prompt: prompt, HandleConfirm: func() error { @@ -128,7 +124,7 @@ func (self *TagsController) push(tag *models.Tag) error { }, ) - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: title, InitialContent: "origin", FindSuggestionsFunc: self.suggestionsHelper.GetRemoteSuggestionsFunc(), @@ -151,9 +147,9 @@ func (self *TagsController) createResetMenu(tag *models.Tag) error { } func (self *TagsController) CreateTagMenu(commitSha string) error { - return self.c.Menu(popup.CreateMenuOptions{ + return self.c.Menu(types.CreateMenuOptions{ Title: self.c.Tr.TagMenuTitle, - Items: []*popup.MenuItem{ + Items: []*types.MenuItem{ { DisplayString: self.c.Tr.LcLightweightTag, OnPress: func() error { @@ -178,10 +174,10 @@ func (self *TagsController) afterTagCreate() error { } func (self *TagsController) handleCreateAnnotatedTag(commitSha string) error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.TagNameTitle, HandleConfirm: func(tagName string) error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.TagMessageTitle, HandleConfirm: func(msg string) error { self.c.LogAction(self.c.Tr.Actions.CreateAnnotatedTag) @@ -196,7 +192,7 @@ func (self *TagsController) handleCreateAnnotatedTag(commitSha string) error { } func (self *TagsController) handleCreateLightweightTag(commitSha string) error { - return self.c.Prompt(popup.PromptOpts{ + return self.c.Prompt(types.PromptOpts{ Title: self.c.Tr.TagNameTitle, HandleConfirm: func(tagName string) error { self.c.LogAction(self.c.Tr.Actions.CreateLightweightTag) @@ -215,7 +211,7 @@ func (self *TagsController) create() error { func (self *TagsController) withSelectedTag(f func(tag *models.Tag) error) func() error { return func() error { - tag := self.getSelectedTag() + tag := self.getContext().GetSelectedTag() if tag == nil { return nil } diff --git a/pkg/gui/controllers/types.go b/pkg/gui/controllers/types.go index 21f774944..19e3769a5 100644 --- a/pkg/gui/controllers/types.go +++ b/pkg/gui/controllers/types.go @@ -2,31 +2,9 @@ package controllers import ( "github.com/jesseduffield/lazygit/pkg/commands/models" - "github.com/jesseduffield/lazygit/pkg/commands/oscommands" - "github.com/jesseduffield/lazygit/pkg/config" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" ) -type IGuiCommon interface { - popup.IPopupHandler - - LogAction(action string) - LogCommand(cmdStr string, isCommandLine bool) - // we call this when we want to refetch some models and render the result. Internally calls PostRefreshUpdate - Refresh(types.RefreshOptions) error - // we call this when we've changed something in the view model but not the actual model, - // e.g. expanding or collapsing a folder in a file view. Calling 'Refresh' in this - // case would be overkill, although refresh will internally call 'PostRefreshUpdate' - PostRefreshUpdate(types.Context) error - RunSubprocessAndRefresh(oscommands.ICmdObj) error - PushContext(context types.Context, opts ...types.OnFocusOpts) error - PopContext() error - - GetAppState() *config.AppState - SaveAppState() error -} - type IRefHelper interface { CheckoutRef(ref string, options types.CheckoutRefOptions) error CreateGitResetMenu(ref string) error diff --git a/pkg/gui/controllers/undo_controller.go b/pkg/gui/controllers/undo_controller.go index 984b8e1a6..571be4251 100644 --- a/pkg/gui/controllers/undo_controller.go +++ b/pkg/gui/controllers/undo_controller.go @@ -5,7 +5,6 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/commands/types/enums" "github.com/jesseduffield/lazygit/pkg/config" - "github.com/jesseduffield/lazygit/pkg/gui/popup" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -21,7 +20,7 @@ import ( // two user actions, meaning we end up undoing reflog entry C. Redoing works in a similar way. type UndoController struct { - c *ControllerCommon + c *types.ControllerCommon git *commands.GitCommand refHelper IRefHelper @@ -33,7 +32,7 @@ type UndoController struct { var _ types.IController = &UndoController{} func NewUndoController( - c *ControllerCommon, + c *types.ControllerCommon, git *commands.GitCommand, refHelper IRefHelper, workingTreeHelper IWorkingTreeHel |