summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-03-21 21:16:30 +1100
committerJesse Duffield <jessedduffield@gmail.com>2023-04-30 13:19:53 +1000
commit0e5a4c7a3629b3fcbb029f7398ebb2666ffe4a54 (patch)
treec9df88d6a7bf4a46854fd8b5ff5e99eea90a273f
parent47b91f1ef5c1bf08e56c4ed170e671d985280932 (diff)
move getModel functions into contexts
-rw-r--r--pkg/gui/context/branches_context.go3
-rw-r--r--pkg/gui/context/commit_files_context.go7
-rw-r--r--pkg/gui/context/local_commits_context.go6
-rw-r--r--pkg/gui/context/reflog_commits_context.go3
-rw-r--r--pkg/gui/context/remote_branches_context.go3
-rw-r--r--pkg/gui/context/remotes_context.go3
-rw-r--r--pkg/gui/context/stash_context.go3
-rw-r--r--pkg/gui/context/sub_commits_context.go9
-rw-r--r--pkg/gui/context/submodules_context.go3
-rw-r--r--pkg/gui/context/tags_context.go3
-rw-r--r--pkg/gui/context/working_tree_context.go22
-rw-r--r--pkg/gui/list_context_config.go22
12 files changed, 37 insertions, 50 deletions
diff --git a/pkg/gui/context/branches_context.go b/pkg/gui/context/branches_context.go
index f891d3117..6b624ca57 100644
--- a/pkg/gui/context/branches_context.go
+++ b/pkg/gui/context/branches_context.go
@@ -16,12 +16,11 @@ var (
)
func NewBranchesContext(
- getModel func() []*models.Branch,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *BranchesContext {
- viewModel := NewBasicViewModel(getModel)
+ viewModel := NewBasicViewModel(func() []*models.Branch { return c.Model().Branches })
self := &BranchesContext{
BasicViewModel: viewModel,
diff --git a/pkg/gui/context/commit_files_context.go b/pkg/gui/context/commit_files_context.go
index eb5f41074..f7ee4a930 100644
--- a/pkg/gui/context/commit_files_context.go
+++ b/pkg/gui/context/commit_files_context.go
@@ -18,12 +18,15 @@ var (
)
func NewCommitFilesContext(
- getModel func() []*models.CommitFile,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *CommitFilesContext {
- viewModel := filetree.NewCommitFileTreeViewModel(getModel, c.Log, c.UserConfig.Gui.ShowFileTree)
+ viewModel := filetree.NewCommitFileTreeViewModel(
+ func() []*models.CommitFile { return c.Model().CommitFiles },
+ c.Log,
+ c.UserConfig.Gui.ShowFileTree,
+ )
return &CommitFilesContext{
CommitFileTreeViewModel: viewModel,
diff --git a/pkg/gui/context/local_commits_context.go b/pkg/gui/context/local_commits_context.go
index fdadeb4a3..4ce8f9c64 100644
--- a/pkg/gui/context/local_commits_context.go
+++ b/pkg/gui/context/local_commits_context.go
@@ -16,12 +16,14 @@ var (
)
func NewLocalCommitsContext(
- getModel func() []*models.Commit,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *LocalCommitsContext {
- viewModel := NewLocalCommitsViewModel(getModel, c)
+ viewModel := NewLocalCommitsViewModel(
+ func() []*models.Commit { return c.Model().Commits },
+ c,
+ )
return &LocalCommitsContext{
LocalCommitsViewModel: viewModel,
diff --git a/pkg/gui/context/reflog_commits_context.go b/pkg/gui/context/reflog_commits_context.go
index 157845079..6a50ed422 100644
--- a/pkg/gui/context/reflog_commits_context.go
+++ b/pkg/gui/context/reflog_commits_context.go
@@ -16,12 +16,11 @@ var (
)
func NewReflogCommitsContext(
- getModel func() []*models.Commit,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *ReflogCommitsContext {
- viewModel := NewBasicViewModel(getModel)
+ viewModel := NewBasicViewModel(func() []*models.Commit { return c.Model().FilteredReflogCommits })
return &ReflogCommitsContext{
BasicViewModel: viewModel,
diff --git a/pkg/gui/context/remote_branches_context.go b/pkg/gui/context/remote_branches_context.go
index 4f6f173d6..78a72001e 100644
--- a/pkg/gui/context/remote_branches_context.go
+++ b/pkg/gui/context/remote_branches_context.go
@@ -17,12 +17,11 @@ var (
)
func NewRemoteBranchesContext(
- getModel func() []*models.RemoteBranch,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *RemoteBranchesContext {
- viewModel := NewBasicViewModel(getModel)
+ viewModel := NewBasicViewModel(func() []*models.RemoteBranch { return c.Model().RemoteBranches })
return &RemoteBranchesContext{
BasicViewModel: viewModel,
diff --git a/pkg/gui/context/remotes_context.go b/pkg/gui/context/remotes_context.go
index a3593e672..402c1bef4 100644
--- a/pkg/gui/context/remotes_context.go
+++ b/pkg/gui/context/remotes_context.go
@@ -16,12 +16,11 @@ var (
)
func NewRemotesContext(
- getModel func() []*models.Remote,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *RemotesContext {
- viewModel := NewBasicViewModel(getModel)
+ viewModel := NewBasicViewModel(func() []*models.Remote { return c.Model().Remotes })
return &RemotesContext{
BasicViewModel: viewModel,
diff --git a/pkg/gui/context/stash_context.go b/pkg/gui/context/stash_context.go
index 81540fecb..f9ed354b9 100644
--- a/pkg/gui/context/stash_context.go
+++ b/pkg/gui/context/stash_context.go
@@ -16,12 +16,11 @@ var (
)
func NewStashContext(
- getModel func() []*models.StashEntry,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *StashContext {
- viewModel := NewBasicViewModel(getModel)
+ viewModel := NewBasicViewModel(func() []*models.StashEntry { return c.Model().StashEntries })
return &StashContext{
BasicViewModel: viewModel,
diff --git a/pkg/gui/context/sub_commits_context.go b/pkg/gui/context/sub_commits_context.go
index 868dbf920..160d905e3 100644
--- a/pkg/gui/context/sub_commits_context.go
+++ b/pkg/gui/context/sub_commits_context.go
@@ -20,15 +20,16 @@ var (
)
func NewSubCommitsContext(
- getModel func() []*models.Commit,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *SubCommitsContext {
viewModel := &SubCommitsViewModel{
- BasicViewModel: NewBasicViewModel(getModel),
- ref: nil,
- limitCommits: true,
+ BasicViewModel: NewBasicViewModel(
+ func() []*models.Commit { return c.Model().SubCommits },
+ ),
+ ref: nil,
+ limitCommits: true,
}
return &SubCommitsContext{
diff --git a/pkg/gui/context/submodules_context.go b/pkg/gui/context/submodules_context.go
index ed074e016..83564dfa5 100644
--- a/pkg/gui/context/submodules_context.go
+++ b/pkg/gui/context/submodules_context.go
@@ -13,12 +13,11 @@ type SubmodulesContext struct {
var _ types.IListContext = (*SubmodulesContext)(nil)
func NewSubmodulesContext(
- getModel func() []*models.SubmoduleConfig,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *SubmodulesContext {
- viewModel := NewBasicViewModel(getModel)
+ viewModel := NewBasicViewModel(func() []*models.SubmoduleConfig { return c.Model().Submodules })
return &SubmodulesContext{
BasicViewModel: viewModel,
diff --git a/pkg/gui/context/tags_context.go b/pkg/gui/context/tags_context.go
index a16a2e653..c71a6eef9 100644
--- a/pkg/gui/context/tags_context.go
+++ b/pkg/gui/context/tags_context.go
@@ -16,12 +16,11 @@ var (
)
func NewTagsContext(
- getModel func() []*models.Tag,
getDisplayStrings func(startIdx int, length int) [][]string,
c *types.HelperCommon,
) *TagsContext {
- viewModel := NewBasicViewModel(getModel)
+ viewModel := NewBasicViewModel(func() []*models.Tag { return c.Model().Tags })
return &TagsContext{
BasicViewModel: viewModel,
diff --git a/pkg/gui/context/working_tree_context.go b/pkg/gui/context/working_tree_context.go
index 3dd6c8279..5cb73ad13 100644
--- a/pkg/gui/context/working_tree_context.go
+++ b/pkg/gui/context/working_tree_context.go
@@ -1,8 +1,10 @@
package context
import (
+ "github.com/jesseduffield/generics/slices"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/filetree"
+ "github.com/jesseduffield/lazygit/pkg/gui/presentation"
"github.com/jesseduffield/lazygit/pkg/gui/types"
)
@@ -13,13 +15,19 @@ type WorkingTreeContext struct {
var _ types.IListContext = (*WorkingTreeContext)(nil)
-func NewWorkingTreeContext(
- getModel func() []*models.File,
- getDisplayStrings func(startIdx int, length int) [][]string,
-
- c *types.HelperCommon,
-) *WorkingTreeContext {
- viewModel := filetree.NewFileTreeViewModel(getModel, c.Log, c.UserConfig.Gui.ShowFileTree)
+func NewWorkingTreeContext(c *types.HelperCommon) *WorkingTreeContext {
+ viewModel := filetree.NewFileTreeViewModel(
+ func() []*models.File { return c.Model().Files },
+ c.Log,
+ c.UserConfig.Gui.ShowFileTree,
+ )
+
+ getDisplayStrings := func(startIdx int, length int) [][]string {
+ lines := presentation.RenderFileTree(viewModel, c.Modes().Diffing.Ref, c.Model().Submodules)
+ return slices.Map(lines, func(line string) []string {
+ return []string{line}
+ })
+ }
return &WorkingTreeContext{
FileTreeViewModel: viewModel,
diff --git a/pkg/gui/list_context_config.go b/pkg/gui/list_context_config.go
index c5c56a1ac..4a05a1cd4 100644
--- a/pkg/gui/list_context_config.go
+++ b/pkg/gui/list_context_config.go
@@ -5,7 +5,6 @@ import (
"github.com/jesseduffield/generics/slices"
"github.com/jesseduffield/lazygit/pkg/commands/git_commands"
- "github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/commands/types/enums"
"github.com/jesseduffield/lazygit/pkg/gui/context"
"github.com/jesseduffield/lazygit/pkg/gui/presentation"
@@ -18,21 +17,11 @@ func (gui *Gui) menuListContext() *context.MenuContext {
}
func (gui *Gui) filesListContext() *context.WorkingTreeContext {
- return context.NewWorkingTreeContext(
- func() []*models.File { return gui.State.Model.Files },
- func(startIdx int, length int) [][]string {
- lines := presentation.RenderFileTree(gui.State.Contexts.Files.FileTreeViewModel, gui.State.Modes.Diffing.Ref, gui.State.Model.Submodules)
- return slices.Map(lines, func(line string) []string {
- return []string{line}
- })
- },
- gui.c,
- )
+ return context.NewWorkingTreeContext(gui.c)
}
func (gui *Gui) branchesListContext() *context.BranchesContext {
return context.NewBranchesContext(
- func() []*models.Branch { return gui.State.Model.Branches },
func(startIdx int, length int) [][]string {
return presentation.GetBranchListDisplayStrings(gui.State.Model.Branches, gui.State.ScreenMode != SCREEN_NORMAL, gui.State.Modes.Diffing.Ref, gui.Tr)
},
@@ -42,7 +31,6 @@ func (gui *Gui) branchesListContext() *context.BranchesContext {
func (gui *Gui) remotesListContext() *context.RemotesContext {
return context.NewRemotesContext(
- func() []*models.Remote { return gui.State.Model.Remotes },
func(startIdx int, length int) [][]string {
return presentation.GetRemoteListDisplayStrings(gui.State.Model.Remotes, gui.State.Modes.Diffing.Ref)
},
@@ -52,7 +40,6 @@ func (gui *Gui) remotesListContext() *context.RemotesContext {
func (gui *Gui) remoteBranchesListContext() *context.RemoteBranchesContext {
return context.NewRemoteBranchesContext(
- func() []*models.RemoteBranch { return gui.State.Model.RemoteBranches },
func(startIdx int, length int) [][]string {
return presentation.GetRemoteBranchListDisplayStrings(gui.State.Model.RemoteBranches, gui.State.Modes.Diffing.Ref)
},
@@ -72,7 +59,6 @@ func (gui *Gui) withDiffModeCheck(f func() error) func() error {
func (gui *Gui) tagsListContext() *context.TagsContext {
return context.NewTagsContext(
- func() []*models.Tag { return gui.State.Model.Tags },
func(startIdx int, length int) [][]string {
return presentation.GetTagListDisplayStrings(gui.State.Model.Tags, gui.State.Modes.Diffing.Ref)
},
@@ -82,7 +68,6 @@ func (gui *Gui) tagsListContext() *context.TagsContext {
func (gui *Gui) branchCommitsListContext() *context.LocalCommitsContext {
return context.NewLocalCommitsContext(
- func() []*models.Commit { return gui.State.Model.Commits },
func(startIdx int, length int) [][]string {
selectedCommitSha := ""
if gui.c.CurrentContext().GetKey() == context.LOCAL_COMMITS_CONTEXT_KEY {
@@ -116,7 +101,6 @@ func (gui *Gui) branchCommitsListContext() *context.LocalCommitsContext {
func (gui *Gui) subCommitsListContext() *context.SubCommitsContext {
return context.NewSubCommitsContext(
- func() []*models.Commit { return gui.State.Model.SubCommits },
func(startIdx int, length int) [][]string {
selectedCommitSha := ""
if gui.c.CurrentContext().GetKey() == context.SUB_COMMITS_CONTEXT_KEY {
@@ -166,7 +150,6 @@ func (gui *Gui) shouldShowGraph() bool {
func (gui *Gui) reflogCommitsListContext() *context.ReflogCommitsContext {
return context.NewReflogCommitsContext(
- func() []*models.Commit { return gui.State.Model.FilteredReflogCommits },
func(startIdx int, length int) [][]string {
return presentation.GetReflogCommitListDisplayStrings(
gui.State.Model.FilteredReflogCommits,
@@ -183,7 +166,6 @@ func (gui *Gui) reflogCommitsListContext() *context.ReflogCommitsContext {
func (gui *Gui) stashListContext() *context.StashContext {
return context.NewStashContext(
- func() []*models.StashEntry { return gui.State.Model.StashEntries },
func(startIdx int, length int) [][]string {
return presentation.GetStashEntryListDisplayStrings(gui.State.Model.StashEntries, gui.State.Modes.Diffing.Ref)
},
@@ -193,7 +175,6 @@ func (gui *Gui) stashListContext() *context.StashContext {
func (gui *Gui) commitFilesListContext() *context.CommitFilesContext {
return context.NewCommitFilesContext(
- func() []*models.CommitFile { return gui.State.Model.CommitFiles },
func(startIdx int, length int) [][]string {
if gui.State.Contexts.CommitFiles.CommitFileTreeViewModel.Len() == 0 {
return [][]string{{style.FgRed.Sprint("(none)")}}
@@ -210,7 +191,6 @@ func (gui *Gui) commitFilesListContext() *context.CommitFilesContext {
func (gui *Gui) submodulesListContext() *context.SubmodulesContext {
return context.NewSubmodulesContext(
- func() []*models.SubmoduleConfig { return gui.State.Model.Submodules },
func(startIdx int, length int) [][]string {
return presentation.GetSubmoduleListDisplayStrings(gui.State.Model.Submodules)
},