mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-11-30 09:16:47 +02:00
e83ef9858b
Instead of storing the status in a new variable, derive it from the existing three fields
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package commands
|
|
|
|
import "github.com/fatih/color"
|
|
|
|
// File : A file from git status
|
|
// duplicating this for now
|
|
type File struct {
|
|
Name string
|
|
HasStagedChanges bool
|
|
HasUnstagedChanges bool
|
|
Tracked bool
|
|
Deleted bool
|
|
HasMergeConflicts bool
|
|
HasInlineMergeConflicts bool
|
|
DisplayString string
|
|
Type string // one of 'file', 'directory', and 'other'
|
|
ShortStatus string // e.g. 'AD', ' A', 'M ', '??'
|
|
}
|
|
|
|
// GetDisplayStrings returns the display string of a file
|
|
func (f *File) GetDisplayStrings(isFocused bool) []string {
|
|
// potentially inefficient to be instantiating these color
|
|
// objects with each render
|
|
red := color.New(color.FgRed)
|
|
green := color.New(color.FgGreen)
|
|
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)
|
|
} else {
|
|
output += green.Sprint(f.Name)
|
|
}
|
|
return []string{output}
|
|
}
|