summaryrefslogtreecommitdiffstats
path: root/pkg/commands/commit_file.go
blob: ddd09b23bd8e50790ba1c35e585741238b7cd158 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package commands

import (
	"github.com/fatih/color"
	"github.com/jesseduffield/lazygit/pkg/theme"
)

// CommitFile : A git commit file
type CommitFile struct {
	Sha           string
	Name          string
	DisplayString string
	Status        int // one of 'WHOLE' 'PART' 'NONE'
}

const (
	// UNSELECTED is for when the commit file has not been added to the patch in any way
	UNSELECTED = iota
	// WHOLE is for when you want to add the whole diff of a file to the patch,
	// including e.g. if it was deleted
	WHOLE = iota
	// PART is for when you're only talking about specific lines that have been modified
	PART
)

// GetDisplayStrings is a function.
func (f *CommitFile) GetDisplayStrings(isFocused bool) []string {
	yellow := color.New(color.FgYellow)
	green := color.New(color.FgGreen)
	defaultColor := color.New(theme.DefaultTextColor)

	var colour *color.Color
	switch f.Status {
	case UNSELECTED:
		colour = defaultColor
	case WHOLE:
		colour = green
	case PART:
		colour = yellow
	}
	return []string{colour.Sprint(f.DisplayString)}
}