Centralize logic regarding WorkingTreeState close to its definition

This commit is contained in:
Stefan Haller 2024-06-11 12:05:42 +02:00
parent cd36e95a82
commit b210b4363d
6 changed files with 52 additions and 64 deletions

View file

@ -1,5 +1,7 @@
package enums
import "github.com/jesseduffield/lazygit/pkg/i18n"
type WorkingTreeState int
const (
@ -16,3 +18,46 @@ func (self WorkingTreeState) IsMerging() bool {
func (self WorkingTreeState) IsRebasing() bool {
return self == WORKING_TREE_STATE_REBASING
}
func (self WorkingTreeState) Title(tr *i18n.TranslationSet) string {
switch self {
case WORKING_TREE_STATE_REBASING:
return tr.RebasingStatus
case WORKING_TREE_STATE_MERGING:
return tr.MergingStatus
default:
// should never actually display this
return "none"
}
}
func (self WorkingTreeState) LowerCaseTitle(tr *i18n.TranslationSet) string {
switch self {
case WORKING_TREE_STATE_REBASING:
return tr.LowercaseRebasingStatus
case WORKING_TREE_STATE_MERGING:
return tr.LowercaseMergingStatus
default:
// should never actually display this
return "none"
}
}
func (self WorkingTreeState) OptionsMenuTitle(tr *i18n.TranslationSet) string {
if self == WORKING_TREE_STATE_MERGING {
return tr.MergeOptionsTitle
}
return tr.RebaseOptionsTitle
}
func (self WorkingTreeState) CommandName() string {
switch self {
case WORKING_TREE_STATE_MERGING:
return "merge"
case WORKING_TREE_STATE_REBASING:
return "rebase"
default:
// shouldn't be possible to land here
return ""
}
}