mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-30 03:23:08 +03:00
no more indirection
This commit is contained in:
@ -32,8 +32,8 @@ func (gui *Gui) allContexts() []types.Context {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) contextTree() context.ContextTree {
|
func (gui *Gui) contextTree() *context.ContextTree {
|
||||||
return context.ContextTree{
|
return &context.ContextTree{
|
||||||
Status: NewSimpleContext(
|
Status: NewSimpleContext(
|
||||||
context.NewBaseContext(context.NewBaseContextOpts{
|
context.NewBaseContext(context.NewBaseContextOpts{
|
||||||
Kind: types.SIDE_CONTEXT,
|
Kind: types.SIDE_CONTEXT,
|
||||||
|
@ -13,7 +13,7 @@ import (
|
|||||||
|
|
||||||
type BisectController struct {
|
type BisectController struct {
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
getContext func() types.IListContext
|
context types.IListContext
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
bisectHelper *BisectHelper
|
bisectHelper *BisectHelper
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ var _ types.IController = &BisectController{}
|
|||||||
|
|
||||||
func NewBisectController(
|
func NewBisectController(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
getContext func() types.IListContext,
|
context types.IListContext,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
bisectHelper *BisectHelper,
|
bisectHelper *BisectHelper,
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ func NewBisectController(
|
|||||||
) *BisectController {
|
) *BisectController {
|
||||||
return &BisectController{
|
return &BisectController{
|
||||||
c: c,
|
c: c,
|
||||||
getContext: getContext,
|
context: context,
|
||||||
git: git,
|
git: git,
|
||||||
bisectHelper: bisectHelper,
|
bisectHelper: bisectHelper,
|
||||||
|
|
||||||
@ -232,8 +232,8 @@ func (self *BisectController) selectCurrentBisectCommit() {
|
|||||||
// find index of commit with that sha, move cursor to that.
|
// find index of commit with that sha, move cursor to that.
|
||||||
for i, commit := range self.getCommits() {
|
for i, commit := range self.getCommits() {
|
||||||
if commit.Sha == info.GetCurrentSha() {
|
if commit.Sha == info.GetCurrentSha() {
|
||||||
self.getContext().GetPanelState().SetSelectedLineIdx(i)
|
self.context.GetPanelState().SetSelectedLineIdx(i)
|
||||||
_ = self.getContext().HandleFocus()
|
_ = self.context.HandleFocus()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -252,5 +252,5 @@ func (self *BisectController) checkSelected(callback func(*models.Commit) error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *BisectController) Context() types.Context {
|
func (self *BisectController) Context() types.Context {
|
||||||
return self.getContext()
|
return self.context
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,8 @@ type CherryPickHelper struct {
|
|||||||
|
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
|
|
||||||
getContexts func() context.ContextTree
|
contexts *context.ContextTree
|
||||||
getData func() *cherrypicking.CherryPicking
|
getData func() *cherrypicking.CherryPicking
|
||||||
|
|
||||||
rebaseHelper *RebaseHelper
|
rebaseHelper *RebaseHelper
|
||||||
}
|
}
|
||||||
@ -25,14 +25,14 @@ type CherryPickHelper struct {
|
|||||||
func NewCherryPickHelper(
|
func NewCherryPickHelper(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
getContexts func() context.ContextTree,
|
contexts *context.ContextTree,
|
||||||
getData func() *cherrypicking.CherryPicking,
|
getData func() *cherrypicking.CherryPicking,
|
||||||
rebaseHelper *RebaseHelper,
|
rebaseHelper *RebaseHelper,
|
||||||
) *CherryPickHelper {
|
) *CherryPickHelper {
|
||||||
return &CherryPickHelper{
|
return &CherryPickHelper{
|
||||||
c: c,
|
c: c,
|
||||||
git: git,
|
git: git,
|
||||||
getContexts: getContexts,
|
contexts: contexts,
|
||||||
getData: getData,
|
getData: getData,
|
||||||
rebaseHelper: rebaseHelper,
|
rebaseHelper: rebaseHelper,
|
||||||
}
|
}
|
||||||
@ -143,9 +143,9 @@ func (self *CherryPickHelper) resetIfNecessary(context types.Context) error {
|
|||||||
|
|
||||||
func (self *CherryPickHelper) rerender() error {
|
func (self *CherryPickHelper) rerender() error {
|
||||||
for _, context := range []types.Context{
|
for _, context := range []types.Context{
|
||||||
self.getContexts().BranchCommits,
|
self.contexts.BranchCommits,
|
||||||
self.getContexts().ReflogCommits,
|
self.contexts.ReflogCommits,
|
||||||
self.getContexts().SubCommits,
|
self.contexts.SubCommits,
|
||||||
} {
|
} {
|
||||||
if err := self.c.PostRefreshUpdate(context); err != nil {
|
if err := self.c.PostRefreshUpdate(context); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -21,21 +21,20 @@ type FilesController struct {
|
|||||||
// case I would actually prefer a _zero_ letter variable name in the form of
|
// 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
|
// struct embedding, but Go does not allow hiding public fields in an embedded struct
|
||||||
// to the client
|
// to the client
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
getContext func() *context.WorkingTreeContext
|
context *context.WorkingTreeContext
|
||||||
getFiles func() []*models.File
|
model *types.Model
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
os *oscommands.OSCommand
|
os *oscommands.OSCommand
|
||||||
|
|
||||||
getSelectedFileNode func() *filetree.FileNode
|
getSelectedFileNode func() *filetree.FileNode
|
||||||
getContexts func() context.ContextTree
|
contexts *context.ContextTree
|
||||||
enterSubmodule func(submodule *models.SubmoduleConfig) error
|
enterSubmodule func(submodule *models.SubmoduleConfig) error
|
||||||
getSubmodules func() []*models.SubmoduleConfig
|
getSubmodules func() []*models.SubmoduleConfig
|
||||||
setCommitMessage func(message string)
|
setCommitMessage func(message string)
|
||||||
getCheckedOutBranch func() *models.Branch
|
getCheckedOutBranch func() *models.Branch
|
||||||
withGpgHandling func(cmdObj oscommands.ICmdObj, waitingStatus string, onSuccess func() error) error
|
withGpgHandling func(cmdObj oscommands.ICmdObj, waitingStatus string, onSuccess func() error) error
|
||||||
getFailedCommitMessage func() string
|
getFailedCommitMessage func() string
|
||||||
getCommits func() []*models.Commit
|
|
||||||
getSelectedPath func() string
|
getSelectedPath func() string
|
||||||
switchToMergeFn func(path string) error
|
switchToMergeFn func(path string) error
|
||||||
suggestionsHelper ISuggestionsHelper
|
suggestionsHelper ISuggestionsHelper
|
||||||
@ -48,18 +47,17 @@ var _ types.IController = &FilesController{}
|
|||||||
|
|
||||||
func NewFilesController(
|
func NewFilesController(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
getContext func() *context.WorkingTreeContext,
|
context *context.WorkingTreeContext,
|
||||||
getFiles func() []*models.File,
|
model *types.Model,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
os *oscommands.OSCommand,
|
os *oscommands.OSCommand,
|
||||||
getSelectedFileNode func() *filetree.FileNode,
|
getSelectedFileNode func() *filetree.FileNode,
|
||||||
allContexts func() context.ContextTree,
|
allContexts *context.ContextTree,
|
||||||
enterSubmodule func(submodule *models.SubmoduleConfig) error,
|
enterSubmodule func(submodule *models.SubmoduleConfig) error,
|
||||||
getSubmodules func() []*models.SubmoduleConfig,
|
getSubmodules func() []*models.SubmoduleConfig,
|
||||||
setCommitMessage func(message string),
|
setCommitMessage func(message string),
|
||||||
withGpgHandling func(cmdObj oscommands.ICmdObj, waitingStatus string, onSuccess func() error) error,
|
withGpgHandling func(cmdObj oscommands.ICmdObj, waitingStatus string, onSuccess func() error) error,
|
||||||
getFailedCommitMessage func() string,
|
getFailedCommitMessage func() string,
|
||||||
getCommits func() []*models.Commit,
|
|
||||||
getSelectedPath func() string,
|
getSelectedPath func() string,
|
||||||
switchToMergeFn func(path string) error,
|
switchToMergeFn func(path string) error,
|
||||||
suggestionsHelper ISuggestionsHelper,
|
suggestionsHelper ISuggestionsHelper,
|
||||||
@ -69,18 +67,17 @@ func NewFilesController(
|
|||||||
) *FilesController {
|
) *FilesController {
|
||||||
return &FilesController{
|
return &FilesController{
|
||||||
c: c,
|
c: c,
|
||||||
getContext: getContext,
|
context: context,
|
||||||
getFiles: getFiles,
|
model: model,
|
||||||
git: git,
|
git: git,
|
||||||
os: os,
|
os: os,
|
||||||
getSelectedFileNode: getSelectedFileNode,
|
getSelectedFileNode: getSelectedFileNode,
|
||||||
getContexts: allContexts,
|
contexts: allContexts,
|
||||||
enterSubmodule: enterSubmodule,
|
enterSubmodule: enterSubmodule,
|
||||||
getSubmodules: getSubmodules,
|
getSubmodules: getSubmodules,
|
||||||
setCommitMessage: setCommitMessage,
|
setCommitMessage: setCommitMessage,
|
||||||
withGpgHandling: withGpgHandling,
|
withGpgHandling: withGpgHandling,
|
||||||
getFailedCommitMessage: getFailedCommitMessage,
|
getFailedCommitMessage: getFailedCommitMessage,
|
||||||
getCommits: getCommits,
|
|
||||||
getSelectedPath: getSelectedPath,
|
getSelectedPath: getSelectedPath,
|
||||||
switchToMergeFn: switchToMergeFn,
|
switchToMergeFn: switchToMergeFn,
|
||||||
suggestionsHelper: suggestionsHelper,
|
suggestionsHelper: suggestionsHelper,
|
||||||
@ -99,7 +96,7 @@ func (self *FilesController) Keybindings(getKey func(key string) interface{}, co
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: gocui.MouseLeft,
|
Key: gocui.MouseLeft,
|
||||||
Handler: func() error { return self.getContext().HandleClick(self.checkSelectedFileNode(self.press)) },
|
Handler: func() error { return self.context.HandleClick(self.checkSelectedFileNode(self.press)) },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: getKey("<c-b>"), // TODO: softcode
|
Key: getKey("<c-b>"), // TODO: softcode
|
||||||
@ -198,7 +195,7 @@ func (self *FilesController) Keybindings(getKey func(key string) interface{}, co
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return append(bindings, self.getContext().Keybindings(getKey, config, guards)...)
|
return append(bindings, self.context.Keybindings(getKey, config, guards)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) press(node *filetree.FileNode) error {
|
func (self *FilesController) press(node *filetree.FileNode) error {
|
||||||
@ -206,7 +203,7 @@ func (self *FilesController) press(node *filetree.FileNode) error {
|
|||||||
file := node.File
|
file := node.File
|
||||||
|
|
||||||
if file.HasInlineMergeConflicts {
|
if file.HasInlineMergeConflicts {
|
||||||
return self.c.PushContext(self.getContexts().Merging)
|
return self.c.PushContext(self.contexts.Merging)
|
||||||
}
|
}
|
||||||
|
|
||||||
if file.HasUnstagedChanges {
|
if file.HasUnstagedChanges {
|
||||||
@ -245,7 +242,7 @@ func (self *FilesController) press(node *filetree.FileNode) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return self.getContext().HandleFocus()
|
return self.context.HandleFocus()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) checkSelectedFileNode(callback func(*filetree.FileNode) error) func() error {
|
func (self *FilesController) checkSelectedFileNode(callback func(*filetree.FileNode) error) func() error {
|
||||||
@ -260,7 +257,7 @@ func (self *FilesController) checkSelectedFileNode(callback func(*filetree.FileN
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) Context() types.Context {
|
func (self *FilesController) Context() types.Context {
|
||||||
return self.getContext()
|
return self.context
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) getSelectedFile() *models.File {
|
func (self *FilesController) getSelectedFile() *models.File {
|
||||||
@ -300,11 +297,11 @@ func (self *FilesController) EnterFile(opts types.OnFocusOpts) error {
|
|||||||
return self.c.ErrorMsg(self.c.Tr.FileStagingRequirements)
|
return self.c.ErrorMsg(self.c.Tr.FileStagingRequirements)
|
||||||
}
|
}
|
||||||
|
|
||||||
return self.c.PushContext(self.getContexts().Staging, opts)
|
return self.c.PushContext(self.contexts.Staging, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) allFilesStaged() bool {
|
func (self *FilesController) allFilesStaged() bool {
|
||||||
for _, file := range self.getFiles() {
|
for _, file := range self.model.Files {
|
||||||
if file.HasUnstagedChanges {
|
if file.HasUnstagedChanges {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -329,7 +326,7 @@ func (self *FilesController) stageAll() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return self.getContexts().Files.HandleFocus()
|
return self.contexts.Files.HandleFocus()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) ignore(node *filetree.FileNode) error {
|
func (self *FilesController) ignore(node *filetree.FileNode) error {
|
||||||
@ -434,7 +431,7 @@ func (self *FilesController) HandleCommitPress() error {
|
|||||||
return self.c.Error(err)
|
return self.c.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(self.getFiles()) == 0 {
|
if len(self.model.Files) == 0 {
|
||||||
return self.c.ErrorMsg(self.c.Tr.NoFilesStagedTitle)
|
return self.c.ErrorMsg(self.c.Tr.NoFilesStagedTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,7 +456,7 @@ func (self *FilesController) HandleCommitPress() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := self.c.PushContext(self.getContexts().CommitMessage); err != nil {
|
if err := self.c.PushContext(self.contexts.CommitMessage); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,7 +482,7 @@ func (self *FilesController) promptToStageAllAndRetry(retry func() error) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) handleAmendCommitPress() error {
|
func (self *FilesController) handleAmendCommitPress() error {
|
||||||
if len(self.getFiles()) == 0 {
|
if len(self.model.Files) == 0 {
|
||||||
return self.c.ErrorMsg(self.c.Tr.NoFilesStagedTitle)
|
return self.c.ErrorMsg(self.c.Tr.NoFilesStagedTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -493,7 +490,7 @@ func (self *FilesController) handleAmendCommitPress() error {
|
|||||||
return self.promptToStageAllAndRetry(self.handleAmendCommitPress)
|
return self.promptToStageAllAndRetry(self.handleAmendCommitPress)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(self.getCommits()) == 0 {
|
if len(self.model.Commits) == 0 {
|
||||||
return self.c.ErrorMsg(self.c.Tr.NoCommitToAmend)
|
return self.c.ErrorMsg(self.c.Tr.NoCommitToAmend)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -511,7 +508,7 @@ func (self *FilesController) handleAmendCommitPress() error {
|
|||||||
// HandleCommitEditorPress - handle when the user wants to commit changes via
|
// HandleCommitEditorPress - handle when the user wants to commit changes via
|
||||||
// their editor rather than via the popup panel
|
// their editor rather than via the popup panel
|
||||||
func (self *FilesController) HandleCommitEditorPress() error {
|
func (self *FilesController) HandleCommitEditorPress() error {
|
||||||
if len(self.getFiles()) == 0 {
|
if len(self.model.Files) == 0 {
|
||||||
return self.c.ErrorMsg(self.c.Tr.NoFilesStagedTitle)
|
return self.c.ErrorMsg(self.c.Tr.NoFilesStagedTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -552,8 +549,8 @@ func (self *FilesController) handleStatusFilterPressed() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) setStatusFiltering(filter filetree.FileTreeDisplayFilter) error {
|
func (self *FilesController) setStatusFiltering(filter filetree.FileTreeDisplayFilter) error {
|
||||||
self.getContext().FileTreeViewModel.SetFilter(filter)
|
self.context.FileTreeViewModel.SetFilter(filter)
|
||||||
return self.c.PostRefreshUpdate(self.getContext())
|
return self.c.PostRefreshUpdate(self.context)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) edit(node *filetree.FileNode) error {
|
func (self *FilesController) edit(node *filetree.FileNode) error {
|
||||||
@ -643,9 +640,9 @@ func (self *FilesController) handleToggleDirCollapsed() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getContext().FileTreeViewModel.ToggleCollapsed(node.GetPath())
|
self.context.FileTreeViewModel.ToggleCollapsed(node.GetPath())
|
||||||
|
|
||||||
if err := self.c.PostRefreshUpdate(self.getContexts().Files); err != nil {
|
if err := self.c.PostRefreshUpdate(self.contexts.Files); err != nil {
|
||||||
self.c.Log.Error(err)
|
self.c.Log.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -653,9 +650,9 @@ func (self *FilesController) handleToggleDirCollapsed() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) toggleTreeView() error {
|
func (self *FilesController) toggleTreeView() error {
|
||||||
self.getContext().FileTreeViewModel.ToggleShowTree()
|
self.context.FileTreeViewModel.ToggleShowTree()
|
||||||
|
|
||||||
return self.c.PostRefreshUpdate(self.getContext())
|
return self.c.PostRefreshUpdate(self.context)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) OpenMergeTool() error {
|
func (self *FilesController) OpenMergeTool() error {
|
||||||
|
@ -24,7 +24,7 @@ type (
|
|||||||
|
|
||||||
type LocalCommitsController struct {
|
type LocalCommitsController struct {
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
getContext func() types.IListContext
|
context types.IListContext
|
||||||
os *oscommands.OSCommand
|
os *oscommands.OSCommand
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
tagsHelper *TagsHelper
|
tagsHelper *TagsHelper
|
||||||
@ -33,7 +33,7 @@ type LocalCommitsController struct {
|
|||||||
rebaseHelper *RebaseHelper
|
rebaseHelper *RebaseHelper
|
||||||
|
|
||||||
getSelectedLocalCommit func() *models.Commit
|
getSelectedLocalCommit func() *models.Commit
|
||||||
getCommits func() []*models.Commit
|
model *types.Model
|
||||||
getSelectedLocalCommitIdx func() int
|
getSelectedLocalCommitIdx func() int
|
||||||
CheckMergeOrRebase CheckMergeOrRebase
|
CheckMergeOrRebase CheckMergeOrRebase
|
||||||
pullFiles PullFilesFn
|
pullFiles PullFilesFn
|
||||||
@ -49,7 +49,7 @@ var _ types.IController = &LocalCommitsController{}
|
|||||||
|
|
||||||
func NewLocalCommitsController(
|
func NewLocalCommitsController(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
getContext func() types.IListContext,
|
context types.IListContext,
|
||||||
os *oscommands.OSCommand,
|
os *oscommands.OSCommand,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
tagsHelper *TagsHelper,
|
tagsHelper *TagsHelper,
|
||||||
@ -57,7 +57,7 @@ func NewLocalCommitsController(
|
|||||||
cherryPickHelper *CherryPickHelper,
|
cherryPickHelper *CherryPickHelper,
|
||||||
rebaseHelper *RebaseHelper,
|
rebaseHelper *RebaseHelper,
|
||||||
getSelectedLocalCommit func() *models.Commit,
|
getSelectedLocalCommit func() *models.Commit,
|
||||||
getCommits func() []*models.Commit,
|
model *types.Model,
|
||||||
getSelectedLocalCommitIdx func() int,
|
getSelectedLocalCommitIdx func() int,
|
||||||
CheckMergeOrRebase CheckMergeOrRebase,
|
CheckMergeOrRebase CheckMergeOrRebase,
|
||||||
pullFiles PullFilesFn,
|
pullFiles PullFilesFn,
|
||||||
@ -70,7 +70,7 @@ func NewLocalCommitsController(
|
|||||||
) *LocalCommitsController {
|
) *LocalCommitsController {
|
||||||
return &LocalCommitsController{
|
return &LocalCommitsController{
|
||||||
c: c,
|
c: c,
|
||||||
getContext: getContext,
|
context: context,
|
||||||
os: os,
|
os: os,
|
||||||
git: git,
|
git: git,
|
||||||
tagsHelper: tagsHelper,
|
tagsHelper: tagsHelper,
|
||||||
@ -78,7 +78,7 @@ func NewLocalCommitsController(
|
|||||||
cherryPickHelper: cherryPickHelper,
|
cherryPickHelper: cherryPickHelper,
|
||||||
rebaseHelper: rebaseHelper,
|
rebaseHelper: rebaseHelper,
|
||||||
getSelectedLocalCommit: getSelectedLocalCommit,
|
getSelectedLocalCommit: getSelectedLocalCommit,
|
||||||
getCommits: getCommits,
|
model: model,
|
||||||
getSelectedLocalCommitIdx: getSelectedLocalCommitIdx,
|
getSelectedLocalCommitIdx: getSelectedLocalCommitIdx,
|
||||||
CheckMergeOrRebase: CheckMergeOrRebase,
|
CheckMergeOrRebase: CheckMergeOrRebase,
|
||||||
pullFiles: pullFiles,
|
pullFiles: pullFiles,
|
||||||
@ -199,7 +199,7 @@ func (self *LocalCommitsController) Keybindings(
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: gocui.MouseLeft,
|
Key: gocui.MouseLeft,
|
||||||
Handler: func() error { return self.getContext().HandleClick(self.checkSelected(self.enter)) },
|
Handler: func() error { return self.context.HandleClick(self.checkSelected(self.enter)) },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,11 +246,11 @@ func (self *LocalCommitsController) Keybindings(
|
|||||||
},
|
},
|
||||||
}...)
|
}...)
|
||||||
|
|
||||||
return append(bindings, self.getContext().Keybindings(getKey, config, guards)...)
|
return append(bindings, self.context.Keybindings(getKey, config, guards)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) squashDown() error {
|
func (self *LocalCommitsController) squashDown() error {
|
||||||
if len(self.getCommits()) <= 1 {
|
if len(self.model.Commits) <= 1 {
|
||||||
return self.c.ErrorMsg(self.c.Tr.YouNoCommitsToSquash)
|
return self.c.ErrorMsg(self.c.Tr.YouNoCommitsToSquash)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -275,7 +275,7 @@ func (self *LocalCommitsController) squashDown() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) fixup() error {
|
func (self *LocalCommitsController) fixup() error {
|
||||||
if len(self.getCommits()) <= 1 {
|
if len(self.model.Commits) <= 1 {
|
||||||
return self.c.ErrorMsg(self.c.Tr.YouNoCommitsToSquash)
|
return self.c.ErrorMsg(self.c.Tr.YouNoCommitsToSquash)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ func (self *LocalCommitsController) reword(commit *models.Commit) error {
|
|||||||
InitialContent: message,
|
InitialContent: message,
|
||||||
HandleConfirm: func(response string) error {
|
HandleConfirm: func(response string) error {
|
||||||
self.c.LogAction(self.c.Tr.Actions.RewordCommit)
|
self.c.LogAction(self.c.Tr.Actions.RewordCommit)
|
||||||
if err := self.git.Rebase.RewordCommit(self.getCommits(), self.getSelectedLocalCommitIdx(), response); err != nil {
|
if err := self.git.Rebase.RewordCommit(self.model.Commits, self.getSelectedLocalCommitIdx(), response); err != nil {
|
||||||
return self.c.Error(err)
|
return self.c.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,7 +339,7 @@ func (self *LocalCommitsController) rewordEditor() error {
|
|||||||
|
|
||||||
self.c.LogAction(self.c.Tr.Actions.RewordCommit)
|
self.c.LogAction(self.c.Tr.Actions.RewordCommit)
|
||||||
subProcess, err := self.git.Rebase.RewordCommitInEditor(
|
subProcess, err := self.git.Rebase.RewordCommitInEditor(
|
||||||
self.getCommits(), self.getSelectedLocalCommitIdx(),
|
self.model.Commits, self.getSelectedLocalCommitIdx(),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return self.c.Error(err)
|
return self.c.Error(err)
|
||||||
@ -402,7 +402,7 @@ func (self *LocalCommitsController) pick() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) interactiveRebase(action string) error {
|
func (self *LocalCommitsController) interactiveRebase(action string) error {
|
||||||
err := self.git.Rebase.InteractiveRebase(self.getCommits(), self.getSelectedLocalCommitIdx(), action)
|
err := self.git.Rebase.InteractiveRebase(self.model.Commits, self.getSelectedLocalCommitIdx(), action)
|
||||||
return self.CheckMergeOrRebase(err)
|
return self.CheckMergeOrRebase(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -441,9 +441,9 @@ func (self *LocalCommitsController) handleMidRebaseCommand(action string) (bool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) handleCommitMoveDown() error {
|
func (self *LocalCommitsController) handleCommitMoveDown() error {
|
||||||
index := self.getContext().GetPanelState().GetSelectedLineIdx()
|
index := self.context.GetPanelState().GetSelectedLineIdx()
|
||||||
commits := self.getCommits()
|
commits := self.model.Commits
|
||||||
selectedCommit := self.getCommits()[index]
|
selectedCommit := self.model.Commits[index]
|
||||||
if selectedCommit.Status == "rebasing" {
|
if selectedCommit.Status == "rebasing" {
|
||||||
if commits[index+1].Status != "rebasing" {
|
if commits[index+1].Status != "rebasing" {
|
||||||
return nil
|
return nil
|
||||||
@ -458,7 +458,7 @@ func (self *LocalCommitsController) handleCommitMoveDown() error {
|
|||||||
return self.c.Error(err)
|
return self.c.Error(err)
|
||||||
}
|
}
|
||||||
// TODO: use MoveSelectedLine
|
// TODO: use MoveSelectedLine
|
||||||
_ = self.getContext().HandleNextLine()
|
_ = self.context.HandleNextLine()
|
||||||
return self.c.Refresh(types.RefreshOptions{
|
return self.c.Refresh(types.RefreshOptions{
|
||||||
Mode: types.SYNC, Scope: []types.RefreshableView{types.REBASE_COMMITS},
|
Mode: types.SYNC, Scope: []types.RefreshableView{types.REBASE_COMMITS},
|
||||||
})
|
})
|
||||||
@ -466,22 +466,22 @@ func (self *LocalCommitsController) handleCommitMoveDown() error {
|
|||||||
|
|
||||||
return self.c.WithWaitingStatus(self.c.Tr.MovingStatus, func() error {
|
return self.c.WithWaitingStatus(self.c.Tr.MovingStatus, func() error {
|
||||||
self.c.LogAction(self.c.Tr.Actions.MoveCommitDown)
|
self.c.LogAction(self.c.Tr.Actions.MoveCommitDown)
|
||||||
err := self.git.Rebase.MoveCommitDown(self.getCommits(), index)
|
err := self.git.Rebase.MoveCommitDown(self.model.Commits, index)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// TODO: use MoveSelectedLine
|
// TODO: use MoveSelectedLine
|
||||||
_ = self.getContext().HandleNextLine()
|
_ = self.context.HandleNextLine()
|
||||||
}
|
}
|
||||||
return self.CheckMergeOrRebase(err)
|
return self.CheckMergeOrRebase(err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) handleCommitMoveUp() error {
|
func (self *LocalCommitsController) handleCommitMoveUp() error {
|
||||||
index := self.getContext().GetPanelState().GetSelectedLineIdx()
|
index := self.context.GetPanelState().GetSelectedLineIdx()
|
||||||
if index == 0 {
|
if index == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
selectedCommit := self.getCommits()[index]
|
selectedCommit := self.model.Commits[index]
|
||||||
if selectedCommit.Status == "rebasing" {
|
if selectedCommit.Status == "rebasing" {
|
||||||
// logging directly here because MoveTodoDown doesn't have enough information
|
// logging directly here because MoveTodoDown doesn't have enough information
|
||||||
// to provide a useful log
|
// to provide a useful log
|
||||||
@ -494,7 +494,7 @@ func (self *LocalCommitsController) handleCommitMoveUp() error {
|
|||||||
if err := self.git.Rebase.MoveTodoDown(index - 1); err != nil {
|
if err := self.git.Rebase.MoveTodoDown(index - 1); err != nil {
|
||||||
return self.c.Error(err)
|
return self.c.Error(err)
|
||||||
}
|
}
|
||||||
_ = self.getContext().HandlePrevLine()
|
_ = self.context.HandlePrevLine()
|
||||||
return self.c.Refresh(types.RefreshOptions{
|
return self.c.Refresh(types.RefreshOptions{
|
||||||
Mode: types.SYNC, Scope: []types.RefreshableView{types.REBASE_COMMITS},
|
Mode: types.SYNC, Scope: []types.RefreshableView{types.REBASE_COMMITS},
|
||||||
})
|
})
|
||||||
@ -502,9 +502,9 @@ func (self *LocalCommitsController) handleCommitMoveUp() error {
|
|||||||
|
|
||||||
return self.c.WithWaitingStatus(self.c.Tr.MovingStatus, func() error {
|
return self.c.WithWaitingStatus(self.c.Tr.MovingStatus, func() error {
|
||||||
self.c.LogAction(self.c.Tr.Actions.MoveCommitUp)
|
self.c.LogAction(self.c.Tr.Actions.MoveCommitUp)
|
||||||
err := self.git.Rebase.MoveCommitDown(self.getCommits(), index-1)
|
err := self.git.Rebase.MoveCommitDown(self.model.Commits, index-1)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
_ = self.getContext().HandlePrevLine()
|
_ = self.context.HandlePrevLine()
|
||||||
}
|
}
|
||||||
return self.CheckMergeOrRebase(err)
|
return self.CheckMergeOrRebase(err)
|
||||||
})
|
})
|
||||||
@ -572,7 +572,7 @@ func (self *LocalCommitsController) createRevertMergeCommitMenu(commit *models.C
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) afterRevertCommit() error {
|
func (self *LocalCommitsController) afterRevertCommit() error {
|
||||||
_ = self.getContext().HandleNextLine()
|
_ = self.context.HandleNextLine()
|
||||||
return self.c.Refresh(types.RefreshOptions{
|
return self.c.Refresh(types.RefreshOptions{
|
||||||
Mode: types.BLOCK_UI, Scope: []types.RefreshableView{types.COMMITS, types.BRANCHES},
|
Mode: types.BLOCK_UI, Scope: []types.RefreshableView{types.COMMITS, types.BRANCHES},
|
||||||
})
|
})
|
||||||
@ -582,7 +582,7 @@ func (self *LocalCommitsController) enter(commit *models.Commit) error {
|
|||||||
return self.switchToCommitFilesContext(SwitchToCommitFilesContextOpts{
|
return self.switchToCommitFilesContext(SwitchToCommitFilesContextOpts{
|
||||||
RefName: commit.Sha,
|
RefName: commit.Sha,
|
||||||
CanRebase: true,
|
CanRebase: true,
|
||||||
Context: self.getContext(),
|
Context: self.context,
|
||||||
WindowName: "commits",
|
WindowName: "commits",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -672,7 +672,7 @@ func (self *LocalCommitsController) gotoBottom() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = self.getContext().HandleGotoBottom()
|
_ = self.context.HandleGotoBottom()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -804,7 +804,7 @@ func (self *LocalCommitsController) checkSelected(callback func(*models.Commit)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) Context() types.Context {
|
func (self *LocalCommitsController) Context() types.Context {
|
||||||
return self.getContext()
|
return self.context
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) newBranch(commit *models.Commit) error {
|
func (self *LocalCommitsController) newBranch(commit *models.Commit) error {
|
||||||
@ -812,11 +812,11 @@ func (self *LocalCommitsController) newBranch(commit *models.Commit) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) copy(commit *models.Commit) error {
|
func (self *LocalCommitsController) copy(commit *models.Commit) error {
|
||||||
return self.cherryPickHelper.Copy(commit, self.getCommits(), self.getContext())
|
return self.cherryPickHelper.Copy(commit, self.model.Commits, self.context)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) copyRange(*models.Commit) error {
|
func (self *LocalCommitsController) copyRange(*models.Commit) error {
|
||||||
return self.cherryPickHelper.CopyRange(self.getContext().GetPanelState().GetSelectedLineIdx(), self.getCommits(), self.getContext())
|
return self.cherryPickHelper.CopyRange(self.context.GetPanelState().GetSelectedLineIdx(), self.model.Commits, self.context)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *LocalCommitsController) paste() error {
|
func (self *LocalCommitsController) paste() error {
|
||||||
|
@ -7,8 +7,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type MenuController struct {
|
type MenuController struct {
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
getContext func() types.IListContext
|
context types.IListContext
|
||||||
|
|
||||||
getSelectedMenuItem func() *types.MenuItem
|
getSelectedMenuItem func() *types.MenuItem
|
||||||
}
|
}
|
||||||
@ -17,12 +17,12 @@ var _ types.IController = &MenuController{}
|
|||||||
|
|
||||||
func NewMenuController(
|
func NewMenuController(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
getContext func() types.IListContext,
|
context types.IListContext,
|
||||||
getSelectedMenuItem func() *types.MenuItem,
|
getSelectedMenuItem func() *types.MenuItem,
|
||||||
) *MenuController {
|
) *MenuController {
|
||||||
return &MenuController{
|
return &MenuController{
|
||||||
c: c,
|
c: c,
|
||||||
getContext: getContext,
|
context: context,
|
||||||
getSelectedMenuItem: getSelectedMenuItem,
|
getSelectedMenuItem: getSelectedMenuItem,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,11 +43,11 @@ func (self *MenuController) Keybindings(getKey func(key string) interface{}, con
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: gocui.MouseLeft,
|
Key: gocui.MouseLeft,
|
||||||
Handler: func() error { return self.getContext().HandleClick(self.press) },
|
Handler: func() error { return self.context.HandleClick(self.press) },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return append(bindings, self.getContext().Keybindings(getKey, config, guards)...)
|
return append(bindings, self.context.Keybindings(getKey, config, guards)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *MenuController) press() error {
|
func (self *MenuController) press() error {
|
||||||
@ -65,5 +65,5 @@ func (self *MenuController) press() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *MenuController) Context() types.Context {
|
func (self *MenuController) Context() types.Context {
|
||||||
return self.getContext()
|
return self.context
|
||||||
}
|
}
|
||||||
|
@ -12,20 +12,20 @@ import (
|
|||||||
|
|
||||||
type RebaseHelper struct {
|
type RebaseHelper struct {
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
getContexts func() context.ContextTree
|
contexts *context.ContextTree
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
takeOverMergeConflictScrolling func()
|
takeOverMergeConflictScrolling func()
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRebaseHelper(
|
func NewRebaseHelper(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
getContexts func() context.ContextTree,
|
contexts *context.ContextTree,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
takeOverMergeConflictScrolling func(),
|
takeOverMergeConflictScrolling func(),
|
||||||
) *RebaseHelper {
|
) *RebaseHelper {
|
||||||
return &RebaseHelper{
|
return &RebaseHelper{
|
||||||
c: c,
|
c: c,
|
||||||
getContexts: getContexts,
|
contexts: contexts,
|
||||||
git: git,
|
git: git,
|
||||||
takeOverMergeConflictScrolling: takeOverMergeConflictScrolling,
|
takeOverMergeConflictScrolling: takeOverMergeConflictScrolling,
|
||||||
}
|
}
|
||||||
@ -139,7 +139,7 @@ func (self *RebaseHelper) CheckMergeOrRebase(result error) error {
|
|||||||
Prompt: self.c.Tr.FoundConflicts,
|
Prompt: self.c.Tr.FoundConflicts,
|
||||||
HandlersManageFocus: true,
|
HandlersManageFocus: true,
|
||||||
HandleConfirm: func() error {
|
HandleConfirm: func() error {
|
||||||
return self.c.PushContext(self.getContexts().Files)
|
return self.c.PushContext(self.contexts.Files)
|
||||||
},
|
},
|
||||||
HandleClose: func() error {
|
HandleClose: func() error {
|
||||||
if err := self.c.PopContext(); err != nil {
|
if err := self.c.PopContext(); err != nil {
|
||||||
|
@ -22,20 +22,20 @@ type IRefsHelper interface {
|
|||||||
type RefsHelper struct {
|
type RefsHelper struct {
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
getContexts func() context.ContextTree
|
contexts *context.ContextTree
|
||||||
limitCommits func()
|
limitCommits func()
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRefsHelper(
|
func NewRefsHelper(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
getContexts func() context.ContextTree,
|
contexts *context.ContextTree,
|
||||||
limitCommits func(),
|
limitCommits func(),
|
||||||
) *RefsHelper {
|
) *RefsHelper {
|
||||||
return &RefsHelper{
|
return &RefsHelper{
|
||||||
c: c,
|
c: c,
|
||||||
git: git,
|
git: git,
|
||||||
getContexts: getContexts,
|
contexts: contexts,
|
||||||
limitCommits: limitCommits,
|
limitCommits: limitCommits,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,9 +51,9 @@ func (self *RefsHelper) CheckoutRef(ref string, options types.CheckoutRefOptions
|
|||||||
cmdOptions := git_commands.CheckoutOptions{Force: false, EnvVars: options.EnvVars}
|
cmdOptions := git_commands.CheckoutOptions{Force: false, EnvVars: options.EnvVars}
|
||||||
|
|
||||||
onSuccess := func() {
|
onSuccess := func() {
|
||||||
self.getContexts().Branches.GetPanelState().SetSelectedLineIdx(0)
|
self.contexts.Branches.GetPanelState().SetSelectedLineIdx(0)
|
||||||
self.getContexts().BranchCommits.GetPanelState().SetSelectedLineIdx(0)
|
self.contexts.BranchCommits.GetPanelState().SetSelectedLineIdx(0)
|
||||||
self.getContexts().ReflogCommits.GetPanelState().SetSelectedLineIdx(0)
|
self.contexts.ReflogCommits.GetPanelState().SetSelectedLineIdx(0)
|
||||||
// loading a heap of commits is slow so we limit them whenever doing a reset
|
// loading a heap of commits is slow so we limit them whenever doing a reset
|
||||||
self.limitCommits()
|
self.limitCommits()
|
||||||
}
|
}
|
||||||
@ -107,12 +107,12 @@ func (self *RefsHelper) ResetToRef(ref string, strength string, envVars []string
|
|||||||
return self.c.Error(err)
|
return self.c.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getContexts().BranchCommits.GetPanelState().SetSelectedLineIdx(0)
|
self.contexts.BranchCommits.GetPanelState().SetSelectedLineIdx(0)
|
||||||
self.getContexts().ReflogCommits.GetPanelState().SetSelectedLineIdx(0)
|
self.contexts.ReflogCommits.GetPanelState().SetSelectedLineIdx(0)
|
||||||
// loading a heap of commits is slow so we limit them whenever doing a reset
|
// loading a heap of commits is slow so we limit them whenever doing a reset
|
||||||
self.limitCommits()
|
self.limitCommits()
|
||||||
|
|
||||||
if err := self.c.PushContext(self.getContexts().BranchCommits); err != nil {
|
if err := self.c.PushContext(self.contexts.BranchCommits); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,14 +163,14 @@ func (self *RefsHelper) NewBranch(from string, fromFormattedName string, suggest
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.c.CurrentContext() != self.getContexts().Branches {
|
if self.c.CurrentContext() != self.contexts.Branches {
|
||||||
if err := self.c.PushContext(self.getContexts().Branches); err != nil {
|
if err := self.c.PushContext(self.contexts.Branches); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getContexts().BranchCommits.GetPanelState().SetSelectedLineIdx(0)
|
self.contexts.BranchCommits.GetPanelState().SetSelectedLineIdx(0)
|
||||||
self.getContexts().Branches.GetPanelState().SetSelectedLineIdx(0)
|
self.contexts.Branches.GetPanelState().SetSelectedLineIdx(0)
|
||||||
|
|
||||||
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
|
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
|
||||||
},
|
},
|
||||||
|
@ -11,30 +11,30 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type RemotesController struct {
|
type RemotesController struct {
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
getContext func() types.IListContext
|
context types.IListContext
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
|
|
||||||
getSelectedRemote func() *models.Remote
|
getSelectedRemote func() *models.Remote
|
||||||
setRemoteBranches func([]*models.RemoteBranch)
|
setRemoteBranches func([]*models.RemoteBranch)
|
||||||
getContexts func() context.ContextTree
|
contexts *context.ContextTree
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ types.IController = &RemotesController{}
|
var _ types.IController = &RemotesController{}
|
||||||
|
|
||||||
func NewRemotesController(
|
func NewRemotesController(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
getContext func() types.IListContext,
|
context types.IListContext,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
getContexts func() context.ContextTree,
|
contexts *context.ContextTree,
|
||||||
getSelectedRemote func() *models.Remote,
|
getSelectedRemote func() *models.Remote,
|
||||||
setRemoteBranches func([]*models.RemoteBranch),
|
setRemoteBranches func([]*models.RemoteBranch),
|
||||||
) *RemotesController {
|
) *RemotesController {
|
||||||
return &RemotesController{
|
return &RemotesController{
|
||||||
c: c,
|
c: c,
|
||||||
git: git,
|
git: git,
|
||||||
getContexts: getContexts,
|
contexts: contexts,
|
||||||
getContext: getContext,
|
context: context,
|
||||||
getSelectedRemote: getSelectedRemote,
|
getSelectedRemote: getSelectedRemote,
|
||||||
setRemoteBranches: setRemoteBranches,
|
setRemoteBranches: setRemoteBranches,
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ func (self *RemotesController) Keybindings(getKey func(key string) interface{},
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: gocui.MouseLeft,
|
Key: gocui.MouseLeft,
|
||||||
Handler: func() error { return self.getContext().HandleClick(self.checkSelected(self.enter)) },
|
Handler: func() error { return self.context.HandleClick(self.checkSelected(self.enter)) },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: getKey(config.Branches.FetchRemote),
|
Key: getKey(config.Branches.FetchRemote),
|
||||||
@ -72,7 +72,7 @@ func (self *RemotesController) Keybindings(getKey func(key string) interface{},
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return append(bindings, self.getContext().Keybindings(getKey, config, guards)...)
|
return append(bindings, self.context.Keybindings(getKey, config, guards)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *RemotesController) enter(remote *models.Remote) error {
|
func (self *RemotesController) enter(remote *models.Remote) error {
|
||||||
@ -83,9 +83,9 @@ func (self *RemotesController) enter(remote *models.Remote) error {
|
|||||||
if len(remote.Branches) == 0 {
|
if len(remote.Branches) == 0 {
|
||||||
newSelectedLine = -1
|
newSelectedLine = -1
|
||||||
}
|
}
|
||||||
self.getContexts().RemoteBranches.GetPanelState().SetSelectedLineIdx(newSelectedLine)
|
self.contexts.RemoteBranches.GetPanelState().SetSelectedLineIdx(newSelectedLine)
|
||||||
|
|
||||||
return self.c.PushContext(self.getContexts().RemoteBranches)
|
return self.c.PushContext(self.contexts.RemoteBranches)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *RemotesController) add() error {
|
func (self *RemotesController) add() error {
|
||||||
@ -191,5 +191,5 @@ func (self *RemotesController) checkSelected(callback func(*models.Remote) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *RemotesController) Context() types.Context {
|
func (self *RemotesController) Context() types.Context {
|
||||||
return self.getContext()
|
return self.context
|
||||||
}
|
}
|
||||||
|
@ -10,11 +10,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type TagsController struct {
|
type TagsController struct {
|
||||||
c *types.ControllerCommon
|
c *types.ControllerCommon
|
||||||
getContext func() *context.TagsContext
|
context *context.TagsContext
|
||||||
git *commands.GitCommand
|
git *commands.GitCommand
|
||||||
getContexts func() context.ContextTree
|
contexts *context.ContextTree
|
||||||
tagsHelper *TagsHelper
|
tagsHelper *TagsHelper
|
||||||
|
|
||||||
refsHelper IRefsHelper
|
refsHelper IRefsHelper
|
||||||
suggestionsHelper ISuggestionsHelper
|
suggestionsHelper ISuggestionsHelper
|
||||||
@ -26,9 +26,9 @@ var _ types.IController = &TagsController{}
|
|||||||
|
|
||||||
func NewTagsController(
|
func NewTagsController(
|
||||||
c *types.ControllerCommon,
|
c *types.ControllerCommon,
|
||||||
getContext func() *context.TagsContext,
|
context *context.TagsContext,
|
||||||
git *commands.GitCommand,
|
git *commands.GitCommand,
|
||||||
getContexts func() context.ContextTree,
|
contexts *context.ContextTree,
|
||||||
tagsHelper *TagsHelper,
|
tagsHelper *TagsHelper,
|
||||||
refsHelper IRefsHelper,
|
refsHelper IRefsHelper,
|
||||||
suggestionsHelper ISuggestionsHelper,
|
suggestionsHelper ISuggestionsHelper,
|
||||||
@ -37,9 +37,9 @@ func NewTagsController(
|
|||||||
) *TagsController {
|
) *TagsController {
|
||||||
return &TagsController{
|
return &TagsController{
|
||||||
c: c,
|
c: c,
|
||||||
getContext: getContext,
|
context: context,
|
||||||
git: git,
|
git: git,
|
||||||
getContexts: getContexts,
|
contexts: contexts,
|
||||||
tagsHelper: tagsHelper,
|
tagsHelper: tagsHelper,
|
||||||
refsHelper: refsHelper,
|
refsHelper: refsHelper,
|
||||||
suggestionsHelper: suggestionsHelper,
|
suggestionsHelper: suggestionsHelper,
|
||||||
@ -83,7 +83,7 @@ func (self *TagsController) Keybindings(getKey func(key string) interface{}, con
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return append(bindings, self.getContext().Keybindings(getKey, config, guards)...)
|
return append(bindings, self.context.Keybindings(getKey, config, guards)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *TagsController) checkout(tag *models.Tag) error {
|
func (self *TagsController) checkout(tag *models.Tag) error {
|
||||||
@ -91,7 +91,7 @@ func (self *TagsController) checkout(tag *models.Tag) error {
|
|||||||
if err := self.refsHelper.CheckoutRef(tag.Name, types.CheckoutRefOptions{}); err != nil {
|
if err := self.refsHelper.CheckoutRef(tag.Name, types.CheckoutRefOptions{}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return self.c.PushContext(self.getContexts().Branches)
|
return self.c.PushContext(self.contexts.Branches)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *TagsController) enter(tag *models.Tag) error {
|
func (self *TagsController) enter(tag *models.Tag) error {
|
||||||
@ -151,12 +151,12 @@ func (self *TagsController) createResetMenu(tag *models.Tag) error {
|
|||||||
|
|
||||||
func (self *TagsController) create() error {
|
func (self *TagsController) create() error {
|
||||||
// leaving commit SHA blank so that we're just creating the tag for the current commit
|
// leaving commit SHA blank so that we're just creating the tag for the current commit
|
||||||
return self.tagsHelper.CreateTagMenu("", func() { self.getContext().GetPanelState().SetSelectedLineIdx(0) })
|
return self.tagsHelper.CreateTagMenu("", func() { self.context.GetPanelState().SetSelectedLineIdx(0) })
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *TagsController) withSelectedTag(f func(tag *models.Tag) error) func() error {
|
func (self *TagsController) withSelectedTag(f func(tag *models.Tag) error) func() error {
|
||||||
return func() error {
|
return func() error {
|
||||||
tag := self.getContext().GetSelectedTag()
|
tag := self.context.GetSelectedTag()
|
||||||
if tag == nil {
|
if tag == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -166,5 +166,5 @@ func (self *TagsController) withSelectedTag(f func(tag *models.Tag) error) func(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *TagsController) Context() types.Context {
|
func (self *TagsController) Context() types.Context {
|
||||||
return self.getContext()
|
return self.context
|
||||||
}
|
}
|
||||||
|
@ -192,7 +192,7 @@ type GuiRepoState struct {
|
|||||||
|
|
||||||
MainContext types.ContextKey // used to keep the main and secondary views' contexts in sync
|
MainContext types.ContextKey // used to keep the main and secondary views' contexts in sync
|
||||||
ContextManager ContextManager
|
ContextManager ContextManager
|
||||||
Contexts context.ContextTree
|
Contexts *context.ContextTree
|
||||||
ViewContextMap map[string]types.Context
|
ViewContextMap map[string]types.Context
|
||||||
ViewTabContextMap map[string][]context.TabContext
|
ViewTabContextMap map[string][]context.TabContext
|
||||||
|
|
||||||
@ -548,14 +548,13 @@ func NewGui(
|
|||||||
func (gui *Gui) resetControllers() {
|
func (gui *Gui) resetControllers() {
|
||||||
controllerCommon := gui.c
|
controllerCommon := gui.c
|
||||||
osCommand := gui.OSCommand
|
osCommand := gui.OSCommand
|
||||||
getContexts := func() context.ContextTree { return gui.State.Contexts }
|
rebaseHelper := controllers.NewRebaseHelper(controllerCommon, gui.State.Contexts, gui.git, gui.takeOverMergeConflictScrolling)
|
||||||
rebaseHelper := controllers.NewRebaseHelper(controllerCommon, getContexts, gui.git, gui.takeOverMergeConflictScrolling)
|
|
||||||
model := gui.State.Model
|
model := gui.State.Model
|
||||||
gui.helpers = &Helpers{
|
gui.helpers = &Helpers{
|
||||||
Refs: controllers.NewRefsHelper(
|
Refs: controllers.NewRefsHelper(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
gui.git,
|
gui.git,
|
||||||
getContexts,
|
gui.State.Contexts,
|
||||||
func() { gui.State.Panels.Commits.LimitCommits = true },
|
func() { gui.State.Panels.Commits.LimitCommits = true },
|
||||||
),
|
),
|
||||||
Bisect: controllers.NewBisectHelper(controllerCommon, gui.git),
|
Bisect: controllers.NewBisectHelper(controllerCommon, gui.git),
|
||||||
@ -567,7 +566,7 @@ func (gui *Gui) resetControllers() {
|
|||||||
CherryPick: controllers.NewCherryPickHelper(
|
CherryPick: controllers.NewCherryPickHelper(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
gui.git,
|
gui.git,
|
||||||
getContexts,
|
gui.State.Contexts,
|
||||||
func() *cherrypicking.CherryPicking { return gui.State.Modes.CherryPicking },
|
func() *cherrypicking.CherryPicking { return gui.State.Modes.CherryPicking },
|
||||||
rebaseHelper,
|
rebaseHelper,
|
||||||
),
|
),
|
||||||
@ -592,18 +591,17 @@ func (gui *Gui) resetControllers() {
|
|||||||
),
|
),
|
||||||
Files: controllers.NewFilesController(
|
Files: controllers.NewFilesController(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
func() *context.WorkingTreeContext { return gui.State.Contexts.Files },
|
gui.State.Contexts.Files,
|
||||||
func() []*models.File { return gui.State.Model.Files },
|
model,
|
||||||
gui.git,
|
gui.git,
|
||||||
osCommand,
|
osCommand,
|
||||||
gui.getSelectedFileNode,
|
gui.getSelectedFileNode,
|
||||||
getContexts,
|
gui.State.Contexts,
|
||||||
gui.enterSubmodule,
|
gui.enterSubmodule,
|
||||||
func() []*models.SubmoduleConfig { return gui.State.Model.Submodules },
|
func() []*models.SubmoduleConfig { return gui.State.Model.Submodules },
|
||||||
gui.getSetTextareaTextFn(func() *gocui.View { return gui.Views.CommitMessage }),
|
gui.getSetTextareaTextFn(func() *gocui.View { return gui.Views.CommitMessage }),
|
||||||
gui.withGpgHandling,
|
gui.withGpgHandling,
|
||||||
func() string { return gui.State.failedCommitMessage },
|
func() string { return gui.State.failedCommitMessage },
|
||||||
func() []*models.Commit { return gui.State.Model.Commits },
|
|
||||||
gui.getSelectedPath,
|
gui.getSelectedPath,
|
||||||
gui.switchToMerge,
|
gui.switchToMerge,
|
||||||
gui.helpers.Suggestions,
|
gui.helpers.Suggestions,
|
||||||
@ -613,9 +611,9 @@ func (gui *Gui) resetControllers() {
|
|||||||
),
|
),
|
||||||
Tags: controllers.NewTagsController(
|
Tags: controllers.NewTagsController(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
func() *context.TagsContext { return gui.State.Contexts.Tags },
|
gui.State.Contexts.Tags,
|
||||||
gui.git,
|
gui.git,
|
||||||
getContexts,
|
gui.State.Contexts,
|
||||||
gui.helpers.Tags,
|
gui.helpers.Tags,
|
||||||
gui.helpers.Refs,
|
gui.helpers.Refs,
|
||||||
gui.helpers.Suggestions,
|
gui.helpers.Suggestions,
|
||||||
@ -623,7 +621,7 @@ func (gui *Gui) resetControllers() {
|
|||||||
),
|
),
|
||||||
LocalCommits: controllers.NewLocalCommitsController(
|
LocalCommits: controllers.NewLocalCommitsController(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
func() types.IListContext { return gui.State.Contexts.BranchCommits },
|
gui.State.Contexts.BranchCommits,
|
||||||
osCommand,
|
osCommand,
|
||||||
gui.git,
|
gui.git,
|
||||||
gui.helpers.Tags,
|
gui.helpers.Tags,
|
||||||
@ -631,7 +629,7 @@ func (gui *Gui) resetControllers() {
|
|||||||
gui.helpers.CherryPick,
|
gui.helpers.CherryPick,
|
||||||
gui.helpers.Rebase,
|
gui.helpers.Rebase,
|
||||||
gui.getSelectedLocalCommit,
|
gui.getSelectedLocalCommit,
|
||||||
func() []*models.Commit { return gui.State.Model.Commits },
|
model,
|
||||||
func() int { return gui.State.Panels.Commits.SelectedLineIdx },
|
func() int { return gui.State.Panels.Commits.SelectedLineIdx },
|
||||||
gui.helpers.Rebase.CheckMergeOrRebase,
|
gui.helpers.Rebase.CheckMergeOrRebase,
|
||||||
syncController.HandlePull,
|
syncController.HandlePull,
|
||||||
@ -644,20 +642,20 @@ func (gui *Gui) resetControllers() {
|
|||||||
),
|
),
|
||||||
Remotes: controllers.NewRemotesController(
|
Remotes: controllers.NewRemotesController(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
func() types.IListContext { return gui.State.Contexts.Remotes },
|
gui.State.Contexts.Remotes,
|
||||||
gui.git,
|
gui.git,
|
||||||
getContexts,
|
gui.State.Contexts,
|
||||||
gui.getSelectedRemote,
|
gui.getSelectedRemote,
|
||||||
func(branches []*models.RemoteBranch) { gui.State.Model.RemoteBranches = branches },
|
func(branches []*models.RemoteBranch) { gui.State.Model.RemoteBranches = branches },
|
||||||
),
|
),
|
||||||
Menu: controllers.NewMenuController(
|
Menu: controllers.NewMenuController(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
func() types.IListContext { return gui.State.Contexts.Menu },
|
gui.State.Contexts.Menu,
|
||||||
gui.getSelectedMenuItem,
|
gui.getSelectedMenuItem,
|
||||||
),
|
),
|
||||||
Bisect: controllers.NewBisectController(
|
Bisect: controllers.NewBisectController(
|
||||||
controllerCommon,
|
controllerCommon,
|
||||||
func() types.IListContext { return gui.State.Contexts.BranchCommits },
|
gui.State.Contexts.BranchCommits,
|
||||||
gui.git,
|
gui.git,
|
||||||
gui.helpers.Bisect,
|
gui.helpers.Bisect,
|
||||||
gui.getSelectedLocalCommit,
|
gui.getSelectedLocalCommit,
|
||||||
|
Reference in New Issue
Block a user