mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-19 12:12:42 +02:00
remove controllers struct
This commit is contained in:
parent
f0a4dcfdc3
commit
0dfb7c08b7
@ -189,9 +189,6 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct
|
|||||||
<kbd>v</kbd>: toggle drag select
|
<kbd>v</kbd>: toggle drag select
|
||||||
<kbd>V</kbd>: toggle drag select
|
<kbd>V</kbd>: toggle drag select
|
||||||
<kbd>a</kbd>: toggle select hunk
|
<kbd>a</kbd>: toggle select hunk
|
||||||
<kbd>c</kbd>: commit changes
|
|
||||||
<kbd>w</kbd>: commit changes without pre-commit hook
|
|
||||||
<kbd>C</kbd>: commit changes using git editor
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
## Reflog
|
## Reflog
|
||||||
|
@ -227,9 +227,6 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct
|
|||||||
<kbd>v</kbd>: toggle drag selecteer
|
<kbd>v</kbd>: toggle drag selecteer
|
||||||
<kbd>V</kbd>: toggle drag selecteer
|
<kbd>V</kbd>: toggle drag selecteer
|
||||||
<kbd>a</kbd>: toggle selecteer hunk
|
<kbd>a</kbd>: toggle selecteer hunk
|
||||||
<kbd>c</kbd>: commit veranderingen
|
|
||||||
<kbd>w</kbd>: commit veranderingen zonder pre-commit hook
|
|
||||||
<kbd>C</kbd>: commit veranderingen met de git editor
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
## Stash
|
## Stash
|
||||||
|
@ -168,9 +168,6 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct
|
|||||||
<kbd>v</kbd>: toggle drag select
|
<kbd>v</kbd>: toggle drag select
|
||||||
<kbd>V</kbd>: toggle drag select
|
<kbd>V</kbd>: toggle drag select
|
||||||
<kbd>a</kbd>: toggle select hunk
|
<kbd>a</kbd>: toggle select hunk
|
||||||
<kbd>c</kbd>: Zatwierdź zmiany
|
|
||||||
<kbd>w</kbd>: zatwierdź zmiany bez skryptu pre-commit
|
|
||||||
<kbd>C</kbd>: Zatwierdź zmiany używając edytora
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
## Reflog
|
## Reflog
|
||||||
|
@ -236,9 +236,6 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct
|
|||||||
<kbd>v</kbd>: 切换拖动选择
|
<kbd>v</kbd>: 切换拖动选择
|
||||||
<kbd>V</kbd>: 切换拖动选择
|
<kbd>V</kbd>: 切换拖动选择
|
||||||
<kbd>a</kbd>: 切换选择区块
|
<kbd>a</kbd>: 切换选择区块
|
||||||
<kbd>c</kbd>: 提交更改
|
|
||||||
<kbd>w</kbd>: 提交更改而无需预先提交钩子
|
|
||||||
<kbd>C</kbd>: 提交更改(使用编辑器编辑提交信息)
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
## 正常
|
## 正常
|
||||||
|
@ -30,7 +30,7 @@ func (gui *Gui) resetControllers() {
|
|||||||
Bisect: helpers.NewBisectHelper(helperCommon, gui.git),
|
Bisect: helpers.NewBisectHelper(helperCommon, gui.git),
|
||||||
Suggestions: helpers.NewSuggestionsHelper(helperCommon, model, gui.refreshSuggestions),
|
Suggestions: helpers.NewSuggestionsHelper(helperCommon, model, gui.refreshSuggestions),
|
||||||
Files: helpers.NewFilesHelper(helperCommon, gui.git, osCommand),
|
Files: helpers.NewFilesHelper(helperCommon, gui.git, osCommand),
|
||||||
WorkingTree: helpers.NewWorkingTreeHelper(model),
|
WorkingTree: helpers.NewWorkingTreeHelper(helperCommon, gui.git, model),
|
||||||
Tags: helpers.NewTagsHelper(helperCommon, gui.git),
|
Tags: helpers.NewTagsHelper(helperCommon, gui.git),
|
||||||
GPG: helpers.NewGpgHelper(helperCommon, gui.os, gui.git),
|
GPG: helpers.NewGpgHelper(helperCommon, gui.os, gui.git),
|
||||||
MergeAndRebase: rebaseHelper,
|
MergeAndRebase: rebaseHelper,
|
||||||
@ -102,27 +102,22 @@ func (gui *Gui) resetControllers() {
|
|||||||
|
|
||||||
remoteBranchesController := controllers.NewRemoteBranchesController(common)
|
remoteBranchesController := controllers.NewRemoteBranchesController(common)
|
||||||
|
|
||||||
gui.Controllers = Controllers{
|
menuController := controllers.NewMenuController(common)
|
||||||
Submodules: submodulesController,
|
localCommitsController := controllers.NewLocalCommitsController(common, syncController.HandlePull)
|
||||||
Global: controllers.NewGlobalController(common),
|
tagsController := controllers.NewTagsController(common)
|
||||||
Files: controllers.NewFilesController(
|
filesController := controllers.NewFilesController(
|
||||||
common,
|
common,
|
||||||
gui.enterSubmodule,
|
gui.enterSubmodule,
|
||||||
setCommitMessage,
|
setCommitMessage,
|
||||||
getSavedCommitMessage,
|
getSavedCommitMessage,
|
||||||
gui.switchToMerge,
|
gui.switchToMerge,
|
||||||
),
|
)
|
||||||
Tags: controllers.NewTagsController(common),
|
remotesController := controllers.NewRemotesController(
|
||||||
LocalCommits: controllers.NewLocalCommitsController(common, syncController.HandlePull),
|
common,
|
||||||
Remotes: controllers.NewRemotesController(
|
func(branches []*models.RemoteBranch) { gui.State.Model.RemoteBranches = branches },
|
||||||
common,
|
)
|
||||||
func(branches []*models.RemoteBranch) { gui.State.Model.RemoteBranches = branches },
|
undoController := controllers.NewUndoController(common)
|
||||||
),
|
globalController := controllers.NewGlobalController(common)
|
||||||
Menu: controllers.NewMenuController(common),
|
|
||||||
Undo: controllers.NewUndoController(common),
|
|
||||||
Sync: syncController,
|
|
||||||
}
|
|
||||||
|
|
||||||
branchesController := controllers.NewBranchesController(common)
|
branchesController := controllers.NewBranchesController(common)
|
||||||
gitFlowController := controllers.NewGitFlowController(common)
|
gitFlowController := controllers.NewGitFlowController(common)
|
||||||
filesRemoveController := controllers.NewFilesRemoveController(common)
|
filesRemoveController := controllers.NewFilesRemoveController(common)
|
||||||
@ -160,18 +155,19 @@ func (gui *Gui) resetControllers() {
|
|||||||
controllers.AttachControllers(context, controllers.NewBasicCommitsController(common, context))
|
controllers.AttachControllers(context, controllers.NewBasicCommitsController(common, context))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
controllers.AttachControllers(gui.State.Contexts.Files, filesController, filesRemoveController)
|
||||||
|
controllers.AttachControllers(gui.State.Contexts.Tags, tagsController)
|
||||||
|
controllers.AttachControllers(gui.State.Contexts.Submodules, submodulesController)
|
||||||
|
controllers.AttachControllers(gui.State.Contexts.LocalCommits, localCommitsController, bisectController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.Branches, branchesController, gitFlowController)
|
controllers.AttachControllers(gui.State.Contexts.Branches, branchesController, gitFlowController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.Files, gui.Controllers.Files, filesRemoveController)
|
controllers.AttachControllers(gui.State.Contexts.LocalCommits, localCommitsController, bisectController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.Tags, gui.Controllers.Tags)
|
|
||||||
controllers.AttachControllers(gui.State.Contexts.Submodules, gui.Controllers.Submodules)
|
|
||||||
controllers.AttachControllers(gui.State.Contexts.LocalCommits, gui.Controllers.LocalCommits, bisectController)
|
|
||||||
controllers.AttachControllers(gui.State.Contexts.CommitFiles, commitFilesController)
|
controllers.AttachControllers(gui.State.Contexts.CommitFiles, commitFilesController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.Remotes, gui.Controllers.Remotes)
|
controllers.AttachControllers(gui.State.Contexts.Remotes, remotesController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.Stash, stashController)
|
controllers.AttachControllers(gui.State.Contexts.Stash, stashController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.Menu, gui.Controllers.Menu)
|
controllers.AttachControllers(gui.State.Contexts.Menu, menuController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.CommitMessage, commitMessageController)
|
controllers.AttachControllers(gui.State.Contexts.CommitMessage, commitMessageController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.RemoteBranches, remoteBranchesController)
|
controllers.AttachControllers(gui.State.Contexts.RemoteBranches, remoteBranchesController)
|
||||||
controllers.AttachControllers(gui.State.Contexts.Global, gui.Controllers.Sync, gui.Controllers.Undo, gui.Controllers.Global)
|
controllers.AttachControllers(gui.State.Contexts.Global, syncController, undoController, globalController)
|
||||||
|
|
||||||
// this must come last so that we've got our click handlers defined against the context
|
// this must come last so that we've got our click handlers defined against the context
|
||||||
listControllerFactory := controllers.NewListControllerFactory(gui.c)
|
listControllerFactory := controllers.NewListControllerFactory(gui.c)
|
||||||
|
@ -135,7 +135,7 @@ func (self *FilesController) GetKeybindings(opts types.KeybindingsOpts) []*types
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Key: opts.GetKey(opts.Config.Files.OpenMergeTool),
|
Key: opts.GetKey(opts.Config.Files.OpenMergeTool),
|
||||||
Handler: self.OpenMergeTool,
|
Handler: self.helpers.WorkingTree.OpenMergeTool,
|
||||||
Description: self.c.Tr.LcOpenMergeTool,
|
Description: self.c.Tr.LcOpenMergeTool,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -603,19 +603,6 @@ func (self *FilesController) toggleTreeView() error {
|
|||||||
return self.c.PostRefreshUpdate(self.context())
|
return self.c.PostRefreshUpdate(self.context())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *FilesController) OpenMergeTool() error {
|
|
||||||
return self.c.Ask(types.AskOpts{
|
|
||||||
Title: self.c.Tr.MergeToolTitle,
|
|
||||||
Prompt: self.c.Tr.MergeToolPrompt,
|
|
||||||
HandleConfirm: func() error {
|
|
||||||
self.c.LogAction(self.c.Tr.Actions.OpenMergeTool)
|
|
||||||
return self.c.RunSubprocessAndRefresh(
|
|
||||||
self.git.WorkingTree.OpenMergeToolCmdObj(),
|
|
||||||
)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *FilesController) handleStashSave(stashFunc func(message string) error) error {
|
func (self *FilesController) handleStashSave(stashFunc func(message string) error) error {
|
||||||
if !self.helpers.WorkingTree.IsWorkingTreeDirty() {
|
if !self.helpers.WorkingTree.IsWorkingTreeDirty() {
|
||||||
return self.c.ErrorMsg(self.c.Tr.NoTrackedStagedFilesStash)
|
return self.c.ErrorMsg(self.c.Tr.NoTrackedStagedFilesStash)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package helpers
|
package helpers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/jesseduffield/lazygit/pkg/commands"
|
||||||
"github.com/jesseduffield/lazygit/pkg/commands/models"
|
"github.com/jesseduffield/lazygit/pkg/commands/models"
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
||||||
)
|
)
|
||||||
@ -13,11 +14,16 @@ type IWorkingTreeHelper interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type WorkingTreeHelper struct {
|
type WorkingTreeHelper struct {
|
||||||
|
c *types.HelperCommon
|
||||||
|
git *commands.GitCommand
|
||||||
|
|
||||||
model *types.Model
|
model *types.Model
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWorkingTreeHelper(model *types.Model) *WorkingTreeHelper {
|
func NewWorkingTreeHelper(c *types.HelperCommon, git *commands.GitCommand, model *types.Model) *WorkingTreeHelper {
|
||||||
return &WorkingTreeHelper{
|
return &WorkingTreeHelper{
|
||||||
|
c: c,
|
||||||
|
git: git,
|
||||||
model: model,
|
model: model,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,3 +59,16 @@ func (self *WorkingTreeHelper) FileForSubmodule(submodule *models.SubmoduleConfi
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *WorkingTreeHelper) OpenMergeTool() error {
|
||||||
|
return self.c.Ask(types.AskOpts{
|
||||||
|
Title: self.c.Tr.MergeToolTitle,
|
||||||
|
Prompt: self.c.Tr.MergeToolPrompt,
|
||||||
|
HandleConfirm: func() error {
|
||||||
|
self.c.LogAction(self.c.Tr.Actions.OpenMergeTool)
|
||||||
|
return self.c.RunSubprocessAndRefresh(
|
||||||
|
self.git.WorkingTree.OpenMergeToolCmdObj(),
|
||||||
|
)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -18,7 +18,6 @@ import (
|
|||||||
"github.com/jesseduffield/lazygit/pkg/common"
|
"github.com/jesseduffield/lazygit/pkg/common"
|
||||||
"github.com/jesseduffield/lazygit/pkg/config"
|
"github.com/jesseduffield/lazygit/pkg/config"
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/context"
|
"github.com/jesseduffield/lazygit/pkg/gui/context"
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/controllers"
|
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers"
|
"github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers"
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/lbl"
|
"github.com/jesseduffield/lazygit/pkg/gui/lbl"
|
||||||
"github.com/jesseduffield/lazygit/pkg/gui/mergeconflicts"
|
"github.com/jesseduffield/lazygit/pkg/gui/mergeconflicts"
|
||||||
@ -129,9 +128,6 @@ type Gui struct {
|
|||||||
|
|
||||||
IsNewRepo bool
|
IsNewRepo bool
|
||||||
|
|
||||||
// controllers define keybindings for a given context
|
|
||||||
Controllers Controllers
|
|
||||||
|
|
||||||
// flag as to whether or not the diff view should ignore whitespace
|
// flag as to whether or not the diff view should ignore whitespace
|
||||||
IgnoreWhitespaceInDiffView bool
|
IgnoreWhitespaceInDiffView bool
|
||||||
|
|
||||||
@ -203,19 +199,6 @@ type GuiRepoState struct {
|
|||||||
CurrentPopupOpts *types.CreatePopupPanelOpts
|
CurrentPopupOpts *types.CreatePopupPanelOpts
|
||||||
}
|
}
|
||||||
|
|
||||||
type Controllers struct {
|
|
||||||
Submodules *controllers.SubmodulesController
|
|
||||||
Tags *controllers.TagsController
|
|
||||||
LocalCommits *controllers.LocalCommitsController
|
|
||||||
Files *controllers.FilesController
|
|
||||||
Remotes *controllers.RemotesController
|
|
||||||
Menu *controllers.MenuController
|
|
||||||
Bisect *controllers.BisectController
|
|
||||||
Undo *controllers.UndoController
|
|
||||||
Sync *controllers.SyncController
|
|
||||||
Global *controllers.GlobalController
|
|
||||||
}
|
|
||||||
|
|
||||||
// for now the staging panel state, unlike the other panel states, is going to be
|
// for now the staging panel state, unlike the other panel states, is going to be
|
||||||
// non-mutative, so that we don't accidentally end up
|
// non-mutative, so that we don't accidentally end up
|
||||||
// with mismatches of data. We might change this in the future
|
// with mismatches of data. We might change this in the future
|
||||||
|
@ -619,7 +619,7 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
|
|||||||
ViewName: "main",
|
ViewName: "main",
|
||||||
Contexts: []string{string(context.MAIN_STAGING_CONTEXT_KEY)},
|
Contexts: []string{string(context.MAIN_STAGING_CONTEXT_KEY)},
|
||||||
Key: opts.GetKey(opts.Config.Universal.OpenFile),
|
Key: opts.GetKey(opts.Config.Universal.OpenFile),
|
||||||
Handler: self.Controllers.Files.Open,
|
Handler: self.HandleOpenFile,
|
||||||
Description: self.c.Tr.LcOpenFile,
|
Description: self.c.Tr.LcOpenFile,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -739,27 +739,6 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
|
|||||||
Description: self.c.Tr.LcScrollRight,
|
Description: self.c.Tr.LcScrollRight,
|
||||||
Tag: "navigation",
|
Tag: "navigation",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
ViewName: "main",
|
|
||||||
Contexts: []string{string(context.MAIN_STAGING_CONTEXT_KEY)},
|
|
||||||
Key: opts.GetKey(opts.Config.Files.CommitChanges),
|
|
||||||
Handler: self.Controllers.Files.HandleCommitPress,
|
|
||||||
Description: self.c.Tr.CommitChanges,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ViewName: "main",
|
|
||||||
Contexts: []string{string(context.MAIN_STAGING_CONTEXT_KEY)},
|
|
||||||
Key: opts.GetKey(opts.Config.Files.CommitChangesWithoutHook),
|
|
||||||
Handler: self.Controllers.Files.HandleWIPCommitPress,
|
|
||||||
Description: self.c.Tr.LcCommitChangesWithoutHook,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ViewName: "main",
|
|
||||||
Contexts: []string{string(context.MAIN_STAGING_CONTEXT_KEY)},
|
|
||||||
Key: opts.GetKey(opts.Config.Files.CommitChangesWithEditor),
|
|
||||||
Handler: self.Controllers.Files.HandleCommitEditorPress,
|
|
||||||
Description: self.c.Tr.CommitChangesWithEditor,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
ViewName: "main",
|
ViewName: "main",
|
||||||
Contexts: []string{string(context.MAIN_MERGING_CONTEXT_KEY)},
|
Contexts: []string{string(context.MAIN_MERGING_CONTEXT_KEY)},
|
||||||
@ -771,7 +750,7 @@ func (self *Gui) GetInitialKeybindings() ([]*types.Binding, []*gocui.ViewMouseBi
|
|||||||
ViewName: "main",
|
ViewName: "main",
|
||||||
Contexts: []string{string(context.MAIN_MERGING_CONTEXT_KEY)},
|
Contexts: []string{string(context.MAIN_MERGING_CONTEXT_KEY)},
|
||||||
Key: opts.GetKey(opts.Config.Files.OpenMergeTool),
|
Key: opts.GetKey(opts.Config.Files.OpenMergeTool),
|
||||||
Handler: self.Controllers.Files.OpenMergeTool,
|
Handler: self.helpers.WorkingTree.OpenMergeTool,
|
||||||
Description: self.c.Tr.LcOpenMergeTool,
|
Description: self.c.Tr.LcOpenMergeTool,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -165,3 +165,12 @@ func (gui *Gui) applySelection(reverse bool, state *LblPanelState) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (gui *Gui) HandleOpenFile() error {
|
||||||
|
file := gui.getSelectedFile()
|
||||||
|
if file == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return gui.helpers.Files.OpenFile(file.GetPath())
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user