summaryrefslogtreecommitdiffstats
path: root/pkg/gui/controllers
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-01-29 19:09:20 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-03-17 19:13:40 +1100
commit138be04e6575f2bd087630e49d122af578c78bf6 (patch)
treeed038641d6871e49ff426096f300e6b3b3ab4f1e /pkg/gui/controllers
parent1a74ed32143f826104e1d60f4392d2d8ba53cd80 (diff)
refactor contexts code
Diffstat (limited to 'pkg/gui/controllers')
-rw-r--r--pkg/gui/controllers/bisect_controller.go17
-rw-r--r--pkg/gui/controllers/controller_common.go10
-rw-r--r--pkg/gui/controllers/files_controller.go25
-rw-r--r--pkg/gui/controllers/local_commits_controller.go41
-rw-r--r--pkg/gui/controllers/menu_controller.go9
-rw-r--r--pkg/gui/controllers/remotes_controller.go15
-rw-r--r--pkg/gui/controllers/submodules_controller.go19
-rw-r--r--pkg/gui/controllers/sync_controller.go11
-rw-r--r--pkg/gui/controllers/tags_controller.go28
-rw-r--r--pkg/gui/controllers/types.go22
-rw-r--r--pkg/gui/controllers/undo_controller.go7
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