WIP Add showDivergenceFromBaseBranch config

This commit is contained in:
Stefan Haller 2024-05-04 12:26:55 +02:00 committed by Jesse Duffield
parent 6d2ec43596
commit 4d2177725f
4 changed files with 56 additions and 31 deletions

View file

@ -74,6 +74,7 @@ gui:
showListFooter: true # for seeing the '5 of 20' message in list panels
showRandomTip: true
showBranchCommitHash: false # show commit hashes alongside branch names
showDivergenceFromBaseBranch: onlyBehind # one of 'off' | 'onlyBehind' | 'behindAndAhead'
showBottomLine: true # for hiding the bottom information line (unless it has important information to tell you)
showPanelJumps: true # for showing the jump-to-panel keybindings as panel subtitles
showCommandLog: true

View file

@ -127,6 +127,8 @@ type GuiConfig struct {
CommitHashLength int `yaml:"commitHashLength" jsonschema:"minimum=0"`
// If true, show commit hashes alongside branch names in the branches view.
ShowBranchCommitHash bool `yaml:"showBranchCommitHash"`
// Whether to show the divergence from the base branch in the branches view.
ShowDivergenceFromBaseBranch string `yaml:"showDivergenceFromBaseBranch" jsonschema:"enum=off,enum=onlyBehind,enum=behindAndAhead"`
// Height of the command log view
CommandLogSize int `yaml:"commandLogSize" jsonschema:"minimum=0"`
// Whether to split the main window when viewing file changes.
@ -668,26 +670,27 @@ func GetDefaultConfig() *UserConfig {
UnstagedChangesColor: []string{"red"},
DefaultFgColor: []string{"default"},
},
CommitLength: CommitLengthConfig{Show: true},
SkipNoStagedFilesWarning: false,
ShowListFooter: true,
ShowCommandLog: true,
ShowBottomLine: true,
ShowPanelJumps: true,
ShowFileTree: true,
ShowRandomTip: true,
ShowIcons: false,
NerdFontsVersion: "",
ShowFileIcons: true,
CommitHashLength: 8,
ShowBranchCommitHash: false,
CommandLogSize: 8,
SplitDiff: "auto",
SkipRewordInEditorWarning: false,
Border: "rounded",
AnimateExplosion: true,
PortraitMode: "auto",
FilterMode: "substring",
CommitLength: CommitLengthConfig{Show: true},
SkipNoStagedFilesWarning: false,
ShowListFooter: true,
ShowCommandLog: true,
ShowBottomLine: true,
ShowPanelJumps: true,
ShowFileTree: true,
ShowRandomTip: true,
ShowIcons: false,
NerdFontsVersion: "",
ShowFileIcons: true,
CommitHashLength: 8,
ShowBranchCommitHash: false,
ShowDivergenceFromBaseBranch: "onlyBehind",
CommandLogSize: 8,
SplitDiff: "auto",
SkipRewordInEditorWarning: false,
Border: "rounded",
AnimateExplosion: true,
PortraitMode: "auto",
FilterMode: "substring",
Spinner: SpinnerConfig{
Frames: []string{"|", "/", "-", "\\"},
Rate: 50,

View file

@ -172,18 +172,29 @@ func BranchStatus(
}
}
ahead := branch.AheadOfBaseBranch.Load()
behind := branch.BehindBaseBranch.Load()
if ahead != 0 || behind != 0 {
if result != "" {
result += " "
}
if ahead != 0 && behind != 0 {
result += style.FgCyan.Sprintf("↓%d↑%d", behind, ahead)
} else if behind != 0 {
result += style.FgCyan.Sprintf("↓%d", behind)
if userConfig.Gui.ShowDivergenceFromBaseBranch != "off" {
behind := branch.BehindBaseBranch.Load()
if userConfig.Gui.ShowDivergenceFromBaseBranch == "onlyBehind" {
if behind != 0 {
if result != "" {
result += " "
}
result += style.FgCyan.Sprintf("↓%d", behind)
}
} else {
result += style.FgCyan.Sprintf("↑%d", ahead)
ahead := branch.AheadOfBaseBranch.Load()
if ahead != 0 || behind != 0 {
if result != "" {
result += " "
}
if ahead != 0 && behind != 0 {
result += style.FgCyan.Sprintf("↓%d↑%d", behind, ahead)
} else if behind != 0 {
result += style.FgCyan.Sprintf("↓%d", behind)
} else {
result += style.FgCyan.Sprintf("↑%d", ahead)
}
}
}
}

View file

@ -319,6 +319,16 @@
"type": "boolean",
"description": "If true, show commit hashes alongside branch names in the branches view."
},
"showDivergenceFromBaseBranch": {
"type": "string",
"enum": [
"off",
"onlyBehind",
"behindAndAhead"
],
"description": "Whether to show the divergence from the base branch in the branches view.",
"default": "onlyBehind"
},
"commandLogSize": {
"type": "integer",
"minimum": 0,