summaryrefslogtreecommitdiffstats
path: root/pkg/gui/presentation/files.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/presentation/files.go')
-rw-r--r--pkg/gui/presentation/files.go20
1 files changed, 14 insertions, 6 deletions
diff --git a/pkg/gui/presentation/files.go b/pkg/gui/presentation/files.go
index 589e8aecc..3e70617fa 100644
--- a/pkg/gui/presentation/files.go
+++ b/pkg/gui/presentation/files.go
@@ -3,34 +3,42 @@ package presentation
import (
"github.com/fatih/color"
"github.com/jesseduffield/lazygit/pkg/commands"
+ "github.com/jesseduffield/lazygit/pkg/theme"
)
-func GetFileListDisplayStrings(files []*commands.File) [][]string {
+func GetFileListDisplayStrings(files []*commands.File, diffName string) [][]string {
lines := make([][]string, len(files))
for i := range files {
- lines[i] = getFileDisplayStrings(files[i])
+ diffed := files[i].Name == diffName
+ lines[i] = getFileDisplayStrings(files[i], diffed)
}
return lines
}
// getFileDisplayStrings returns the display string of branch
-func getFileDisplayStrings(f *commands.File) []string {
+func getFileDisplayStrings(f *commands.File, diffed bool) []string {
// potentially inefficient to be instantiating these color
// objects with each render
red := color.New(color.FgRed)
green := color.New(color.FgGreen)
+ diffColor := color.New(theme.DiffTerminalColor)
if !f.Tracked && !f.HasStagedChanges {
return []string{red.Sprint(f.DisplayString)}
}
output := green.Sprint(f.DisplayString[0:1])
output += red.Sprint(f.DisplayString[1:3])
- if f.HasUnstagedChanges {
- output += red.Sprint(f.Name)
+
+ var restColor *color.Color
+ if diffed {
+ restColor = diffColor
+ } else if f.HasUnstagedChanges {
+ restColor = red
} else {
- output += green.Sprint(f.Name)
+ restColor = green
}
+ output += restColor.Sprint(f.Name)
return []string{output}
}