1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-13 01:30:53 +02:00

some more standardisation for diffing

This commit is contained in:
Jesse Duffield
2020-08-19 22:57:22 +10:00
parent 2855b5b4d5
commit 7561f5aa32
7 changed files with 60 additions and 48 deletions

View File

@ -12,3 +12,7 @@ type Branch struct {
UpstreamName string
Head bool
}
func (b *Branch) RefName() string {
return b.Name
}

View File

@ -24,3 +24,7 @@ func (c *Commit) ShortSha() string {
func (c *Commit) NameWithSha() string {
return fmt.Sprintf("%s %s", c.Sha[:7], c.Name)
}
func (c *Commit) RefName() string {
return c.Sha
}

View File

@ -6,3 +6,7 @@ type Remote struct {
Urls []string
Branches []*RemoteBranch
}
func (r *Remote) RefName() string {
return r.Name
}

View File

@ -9,3 +9,7 @@ type RemoteBranch struct {
func (r *RemoteBranch) FullName() string {
return r.RemoteName + "/" + r.Name
}
func (r *RemoteBranch) RefName() string {
return r.FullName()
}

View File

@ -4,3 +4,7 @@ package commands
type Tag struct {
Name string
}
func (t *Tag) RefName() string {
return t.Name
}

View File

@ -5,7 +5,6 @@ import (
"strings"
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands"
)
func (gui *Gui) inDiffMode() bool {
@ -42,62 +41,55 @@ func (gui *Gui) renderDiff() error {
// which becomes an option when you bring up the diff menu, but when you're just
// flicking through branches it will be using the local branch name.
func (gui *Gui) currentDiffTerminals() []string {
currentView := gui.g.CurrentView()
if currentView == nil {
return nil
}
names := []string{}
switch currentView.Name() {
switch gui.currentContextKey() {
case "files":
// not supporting files for now
case "commitFiles":
case "commit-files":
// not supporting commit files for now
case "commits":
var commit *commands.Commit
switch gui.getCommitsView().Context {
case "reflog-commits":
commit = gui.getSelectedReflogCommit()
case "branch-commits":
commit = gui.getSelectedCommit()
case "branch-commits":
item := gui.getSelectedCommit()
if item != nil {
return []string{item.RefName()}
}
if commit != nil {
names = append(names, commit.Sha)
case "reflog-commits":
item := gui.getSelectedReflogCommit()
if item != nil {
return []string{item.RefName()}
}
case "stash":
entry := gui.getSelectedStashEntry()
if entry != nil {
names = append(names, entry.RefName())
item := gui.getSelectedStashEntry()
if item != nil {
return []string{item.RefName()}
}
case "branches":
switch gui.getBranchesView().Context {
case "local-branches":
branch := gui.getSelectedBranch()
if branch != nil {
names = append(names, branch.Name)
if branch.UpstreamName != "" {
names = append(names, branch.UpstreamName)
}
}
case "remotes":
remote := gui.getSelectedRemote()
if remote != nil {
names = append(names, remote.Name)
}
case "remote-branches":
remoteBranch := gui.getSelectedRemoteBranch()
if remoteBranch != nil {
names = append(names, remoteBranch.FullName())
}
case "tags":
tag := gui.getSelectedTag()
if tag != nil {
names = append(names, tag.Name)
case "local-branches":
branch := gui.getSelectedBranch()
if branch != nil {
names := []string{branch.RefName()}
if branch.UpstreamName != "" {
names = append(names, branch.UpstreamName)
}
return names
}
return nil
case "remotes":
item := gui.getSelectedRemote()
if item != nil {
return []string{item.RefName()}
}
case "remote-branches":
item := gui.getSelectedRemoteBranch()
if item != nil {
return []string{item.RefName()}
}
case "tags":
item := gui.getSelectedTag()
if item != nil {
return []string{item.RefName()}
}
}
return names
return nil
}
func (gui *Gui) currentDiffTerminal() string {

View File

@ -326,7 +326,7 @@ func (gui *Gui) stashListContext() *ListContext {
func (gui *Gui) commitFilesListContext() *ListContext {
return &ListContext{
ViewName: "commitFiles",
ContextKey: "commitFiles",
ContextKey: "commit-files",
GetItemsLength: func() int { return len(gui.State.CommitFiles) },
GetSelectedLineIdxPtr: func() *int { return &gui.State.Panels.CommitFiles.SelectedLine },
OnFocus: gui.handleCommitFileSelect,