mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-02-03 13:21:56 +02:00
70 lines
1.9 KiB
Go
70 lines
1.9 KiB
Go
|
package helpers
|
||
|
|
||
|
import (
|
||
|
"github.com/jesseduffield/lazygit/pkg/commands/git_commands"
|
||
|
"github.com/jesseduffield/lazygit/pkg/commands/models"
|
||
|
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
||
|
"github.com/jesseduffield/lazygit/pkg/utils"
|
||
|
)
|
||
|
|
||
|
type SubCommitsHelper struct {
|
||
|
c *HelperCommon
|
||
|
|
||
|
refreshHelper *RefreshHelper
|
||
|
setSubCommits func([]*models.Commit)
|
||
|
}
|
||
|
|
||
|
func NewSubCommitsHelper(
|
||
|
c *HelperCommon,
|
||
|
refreshHelper *RefreshHelper,
|
||
|
setSubCommits func([]*models.Commit),
|
||
|
) *SubCommitsHelper {
|
||
|
return &SubCommitsHelper{
|
||
|
c: c,
|
||
|
refreshHelper: refreshHelper,
|
||
|
setSubCommits: setSubCommits,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
type ViewSubCommitsOpts struct {
|
||
|
Ref types.Ref
|
||
|
Context types.Context
|
||
|
ShowBranchHeads bool
|
||
|
}
|
||
|
|
||
|
func (self *SubCommitsHelper) ViewSubCommits(opts ViewSubCommitsOpts) error {
|
||
|
commits, err := self.c.Git().Loaders.CommitLoader.GetCommits(
|
||
|
git_commands.GetCommitsOptions{
|
||
|
Limit: true,
|
||
|
FilterPath: self.c.Modes().Filtering.GetPath(),
|
||
|
IncludeRebaseCommits: false,
|
||
|
RefName: opts.Ref.FullRefName(),
|
||
|
RefForPushedStatus: opts.Ref.FullRefName(),
|
||
|
},
|
||
|
)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
self.setSubCommits(commits)
|
||
|
self.refreshHelper.RefreshAuthors(commits)
|
||
|
|
||
|
subCommitsContext := self.c.Contexts().SubCommits
|
||
|
subCommitsContext.SetSelectedLineIdx(0)
|
||
|
subCommitsContext.SetParentContext(opts.Context)
|
||
|
subCommitsContext.SetWindowName(opts.Context.GetWindowName())
|
||
|
subCommitsContext.SetTitleRef(utils.TruncateWithEllipsis(opts.Ref.RefName(), 50))
|
||
|
subCommitsContext.SetRef(opts.Ref)
|
||
|
subCommitsContext.SetLimitCommits(true)
|
||
|
subCommitsContext.SetShowBranchHeads(opts.ShowBranchHeads)
|
||
|
subCommitsContext.ClearSearchString()
|
||
|
subCommitsContext.GetView().ClearSearch()
|
||
|
|
||
|
err = self.c.PostRefreshUpdate(self.c.Contexts().SubCommits)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return self.c.PushContext(self.c.Contexts().SubCommits)
|
||
|
}
|