fix: migrate color_background correctly

resolves #1771
This commit is contained in:
Jan De Dobbeleer 2022-02-17 12:34:51 +01:00 committed by Jan De Dobbeleer
parent fb6f8e63df
commit cc1da3f0ea
2 changed files with 15 additions and 12 deletions

View file

@ -61,10 +61,11 @@ func (segment *Segment) migrationOne(env environment.Environment) {
segment.migrateIconOverride("worktree_count_icon", " \uf1bb ") segment.migrateIconOverride("worktree_count_icon", " \uf1bb ")
segment.migrateIconOverride("status_separator_icon", " |") segment.migrateIconOverride("status_separator_icon", " |")
if segment.Properties.GetBool(properties.Property("status_colors_enabled"), false) { if segment.Properties.GetBool(properties.Property("status_colors_enabled"), false) {
segment.migrateColorOverride("local_changes_color", "{{ if or (.Working.Changed) (.Staging.Changed) }}%s{{ end }}") background := segment.Properties.GetBool(colorBackground, true)
segment.migrateColorOverride("ahead_and_behind_color", "{{ if and (gt .Ahead 0) (gt .Behind 0) }}%s{{ end }}") segment.migrateColorOverride("local_changes_color", "{{ if or (.Working.Changed) (.Staging.Changed) }}%s{{ end }}", background)
segment.migrateColorOverride("behind_color", "{{ if gt .Ahead 0 }}%s{{ end }}") segment.migrateColorOverride("ahead_and_behind_color", "{{ if and (gt .Ahead 0) (gt .Behind 0) }}%s{{ end }}", background)
segment.migrateColorOverride("ahead_color", "{{ if gt .Behind 0 }}%s{{ end }}") segment.migrateColorOverride("behind_color", "{{ if gt .Ahead 0 }}%s{{ end }}", background)
segment.migrateColorOverride("ahead_color", "{{ if gt .Behind 0 }}%s{{ end }}", background)
} }
if !hasTemplate { if !hasTemplate {
segment.migrateInlineColorOverride("working_color", "{{ .Working.String }}") segment.migrateInlineColorOverride("working_color", "{{ .Working.String }}")
@ -76,9 +77,10 @@ func (segment *Segment) migrationOne(env environment.Environment) {
delete(segment.Properties, "status_colors_enabled") delete(segment.Properties, "status_colors_enabled")
case BATTERY: case BATTERY:
segment.migrateTemplate() segment.migrateTemplate()
segment.migrateColorOverride("charged_color", `{{ if eq "Full" .State.String }}%s{{ end }}`) background := segment.Properties.GetBool(colorBackground, false)
segment.migrateColorOverride("charging_color", `{{ if eq "Charging" .State.String }}%s{{ end }}`) segment.migrateColorOverride("charged_color", `{{ if eq "Full" .State.String }}%s{{ end }}`, background)
segment.migrateColorOverride("discharging_color", `{{ if eq "Discharging" .State.String }}%s{{ end }}`) segment.migrateColorOverride("charging_color", `{{ if eq "Charging" .State.String }}%s{{ end }}`, background)
segment.migrateColorOverride("discharging_color", `{{ if eq "Discharging" .State.String }}%s{{ end }}`, background)
stateList := []string{`"Discharging"`} stateList := []string{`"Discharging"`}
if segment.Properties.GetBool(properties.Property("display_charging"), true) { if segment.Properties.GetBool(properties.Property("display_charging"), true) {
stateList = append(stateList, `"Charging"`) stateList = append(stateList, `"Charging"`)
@ -123,7 +125,8 @@ func (segment *Segment) migrationOne(env environment.Environment) {
enableVersionMismatch := "enable_version_mismatch" enableVersionMismatch := "enable_version_mismatch"
if segment.Properties.GetBool(properties.Property(enableVersionMismatch), false) { if segment.Properties.GetBool(properties.Property(enableVersionMismatch), false) {
delete(segment.Properties, properties.Property(enableVersionMismatch)) delete(segment.Properties, properties.Property(enableVersionMismatch))
segment.migrateColorOverride("version_mismatch_color", "{{ if .Mismatch }}%s{{ end }}") background := segment.Properties.GetBool(colorBackground, false)
segment.migrateColorOverride("version_mismatch_color", "{{ if .Mismatch }}%s{{ end }}", background)
} }
case EXIT: case EXIT:
template := segment.Properties.GetString(properties.SegmentTemplate, segment.writer.Template()) template := segment.Properties.GetString(properties.SegmentTemplate, segment.writer.Template())
@ -145,7 +148,8 @@ func (segment *Segment) migrationOne(env environment.Environment) {
segment.migrateTemplate() segment.migrateTemplate()
segment.migrateIconOverride("success_icon", "\uf42e") segment.migrateIconOverride("success_icon", "\uf42e")
segment.migrateIconOverride("error_icon", "\uf00d") segment.migrateIconOverride("error_icon", "\uf00d")
segment.migrateColorOverride("error_color", "{{ if gt .Code 0 }}%s{{ end }}") background := segment.Properties.GetBool(colorBackground, false)
segment.migrateColorOverride("error_color", "{{ if gt .Code 0 }}%s{{ end }}", background)
default: default:
segment.migrateTemplate() segment.migrateTemplate()
} }
@ -204,7 +208,7 @@ func (segment *Segment) migrateIconOverride(property properties.Property, overri
delete(segment.Properties, property) delete(segment.Properties, property)
} }
func (segment *Segment) migrateColorOverride(property properties.Property, template string) { func (segment *Segment) migrateColorOverride(property properties.Property, template string, background bool) {
if !segment.hasProperty(property) { if !segment.hasProperty(property) {
return return
} }
@ -213,7 +217,6 @@ func (segment *Segment) migrateColorOverride(property properties.Property, templ
if len(color) == 0 { if len(color) == 0 {
return return
} }
background := segment.Properties.GetBool(colorBackground, false)
colorTemplate := fmt.Sprintf(template, color) colorTemplate := fmt.Sprintf(template, color)
if background { if background {
segment.BackgroundTemplates = append(segment.BackgroundTemplates, colorTemplate) segment.BackgroundTemplates = append(segment.BackgroundTemplates, colorTemplate)

View file

@ -172,7 +172,7 @@ func TestColorMigration(t *testing.T) {
if tc.Background { if tc.Background {
segment.Properties[colorBackground] = true segment.Properties[colorBackground] = true
} }
segment.migrateColorOverride(tc.Property, tc.Template) segment.migrateColorOverride(tc.Property, tc.Template, tc.Background)
templates := segment.ForegroundTemplates templates := segment.ForegroundTemplates
if tc.Background { if tc.Background {
templates = segment.BackgroundTemplates templates = segment.BackgroundTemplates