summaryrefslogtreecommitdiffstats
path: root/pkg/gui/diffing.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-08-19 22:57:22 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-08-23 14:29:18 +1000
commit7561f5aa32304718e698f4f9217e465f6b1cc96b (patch)
tree356f573951f3be9734b4fdeb5220098e5d26f63f /pkg/gui/diffing.go
parent2855b5b4d5eb757c4b6eb359b862ebb6fa9dffb4 (diff)
some more standardisation for diffing
Diffstat (limited to 'pkg/gui/diffing.go')
-rw-r--r--pkg/gui/diffing.go86
1 files changed, 39 insertions, 47 deletions
diff --git a/pkg/gui/diffing.go b/pkg/gui/diffing.go
index 789552659..ff52bdeb9 100644
--- a/pkg/gui/diffing.go
+++ b/pkg/gui/diffing.go
@@ -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 {