mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2025-02-02 05:41:10 -08:00
fix: do not insert color override in existing template
This commit is contained in:
parent
566240c0ed
commit
42f9747558
|
@ -27,7 +27,7 @@ Battery displays the remaining power percentage for your battery.
|
||||||
"charging_icon": "\uE234 ",
|
"charging_icon": "\uE234 ",
|
||||||
"charged_icon": "\uE22F ",
|
"charged_icon": "\uE22F ",
|
||||||
"postfix": "\uF295 ",
|
"postfix": "\uF295 ",
|
||||||
"template": "{{ if not .Error }}{{.Icon}}{{.Percentage}}{{ end }}"
|
"template": "{{ if not .Error }}{{ .Icon }}{{ .Percentage }}{{ end }}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -40,10 +40,12 @@ func (segment *Segment) migrationOne(env environment.Environment) {
|
||||||
}
|
}
|
||||||
// General properties that need replacement
|
// General properties that need replacement
|
||||||
segment.migratePropertyKey("display_version", properties.FetchVersion)
|
segment.migratePropertyKey("display_version", properties.FetchVersion)
|
||||||
|
delete(segment.Properties, "enable_hyperlink")
|
||||||
switch segment.Type { // nolint:exhaustive
|
switch segment.Type { // nolint:exhaustive
|
||||||
case TEXT:
|
case TEXT:
|
||||||
segment.migratePropertyValue("text", properties.SegmentTemplate)
|
segment.migratePropertyValue("text", properties.SegmentTemplate)
|
||||||
case GIT:
|
case GIT:
|
||||||
|
hasTemplate := segment.hasProperty(properties.SegmentTemplate)
|
||||||
segment.migratePropertyKey("display_status", segments.FetchStatus)
|
segment.migratePropertyKey("display_status", segments.FetchStatus)
|
||||||
segment.migratePropertyKey("display_stash_count", segments.FetchStashCount)
|
segment.migratePropertyKey("display_stash_count", segments.FetchStashCount)
|
||||||
segment.migratePropertyKey("display_worktree_count", segments.FetchWorktreeCount)
|
segment.migratePropertyKey("display_worktree_count", segments.FetchWorktreeCount)
|
||||||
|
@ -60,8 +62,14 @@ func (segment *Segment) migrationOne(env environment.Environment) {
|
||||||
segment.migrateColorOverride("behind_color", "{{ if gt .Ahead 0 }}%s{{ end }}")
|
segment.migrateColorOverride("behind_color", "{{ if gt .Ahead 0 }}%s{{ end }}")
|
||||||
segment.migrateColorOverride("ahead_color", "{{ if gt .Behind 0 }}%s{{ end }}")
|
segment.migrateColorOverride("ahead_color", "{{ if gt .Behind 0 }}%s{{ end }}")
|
||||||
}
|
}
|
||||||
segment.migrateInlineColorOverride("working_color", "{{ .Working.String }}")
|
if !hasTemplate {
|
||||||
segment.migrateInlineColorOverride("staging_color", "{{ .Staging.String }}")
|
segment.migrateInlineColorOverride("working_color", "{{ .Working.String }}")
|
||||||
|
segment.migrateInlineColorOverride("staging_color", "{{ .Staging.String }}")
|
||||||
|
}
|
||||||
|
// legacy properties
|
||||||
|
delete(segment.Properties, "display_branch_status")
|
||||||
|
delete(segment.Properties, "display_status_detail")
|
||||||
|
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 }}`)
|
segment.migrateColorOverride("charged_color", `{{ if eq "Full" .State.String }}%s{{ end }}`)
|
||||||
|
@ -80,10 +88,15 @@ func (segment *Segment) migrationOne(env environment.Environment) {
|
||||||
template = strings.ReplaceAll(template, "{{ .Icon }}{{ .Percentage }}", fmt.Sprintf(enabledTemplate, strings.Join(stateList, " ")))
|
template = strings.ReplaceAll(template, "{{ .Icon }}{{ .Percentage }}", fmt.Sprintf(enabledTemplate, strings.Join(stateList, " ")))
|
||||||
segment.Properties[properties.SegmentTemplate] = template
|
segment.Properties[properties.SegmentTemplate] = template
|
||||||
}
|
}
|
||||||
|
// legacy properties
|
||||||
|
delete(segment.Properties, "display_charging")
|
||||||
|
delete(segment.Properties, "display_charged")
|
||||||
|
delete(segment.Properties, "battery_icon")
|
||||||
case PYTHON:
|
case PYTHON:
|
||||||
segment.migrateTemplate()
|
segment.migrateTemplate()
|
||||||
segment.migratePropertyKey("display_virtual_env", segments.FetchVirtualEnv)
|
segment.migratePropertyKey("display_virtual_env", segments.FetchVirtualEnv)
|
||||||
case SESSION:
|
case SESSION:
|
||||||
|
hasTemplate := segment.hasProperty(properties.SegmentTemplate)
|
||||||
segment.migrateTemplate()
|
segment.migrateTemplate()
|
||||||
segment.migrateIconOverride("ssh_icon", "\uf817 ")
|
segment.migrateIconOverride("ssh_icon", "\uf817 ")
|
||||||
template := segment.Properties.GetString(properties.SegmentTemplate, segment.writer.Template())
|
template := segment.Properties.GetString(properties.SegmentTemplate, segment.writer.Template())
|
||||||
|
@ -96,8 +109,10 @@ func (segment *Segment) migrationOne(env environment.Environment) {
|
||||||
}
|
}
|
||||||
segment.Properties[properties.SegmentTemplate] = template
|
segment.Properties[properties.SegmentTemplate] = template
|
||||||
segment.migrateIconOverride("user_info_separator", "@")
|
segment.migrateIconOverride("user_info_separator", "@")
|
||||||
segment.migrateInlineColorOverride("user_color", "{{ .UserName }}")
|
if !hasTemplate {
|
||||||
segment.migrateInlineColorOverride("host_color", "{{ .HostName }}")
|
segment.migrateInlineColorOverride("user_color", "{{ .UserName }}")
|
||||||
|
segment.migrateInlineColorOverride("host_color", "{{ .HostName }}")
|
||||||
|
}
|
||||||
case NODE:
|
case NODE:
|
||||||
segment.migrateTemplate()
|
segment.migrateTemplate()
|
||||||
segment.migratePropertyKey("display_package_manager", segments.FetchPackageManager)
|
segment.migratePropertyKey("display_package_manager", segments.FetchPackageManager)
|
||||||
|
@ -126,6 +141,7 @@ func (segment *Segment) migrationOne(env environment.Environment) {
|
||||||
default:
|
default:
|
||||||
segment.migrateTemplate()
|
segment.migrateTemplate()
|
||||||
}
|
}
|
||||||
|
delete(segment.Properties, colorBackground)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (segment *Segment) hasProperty(property properties.Property) bool {
|
func (segment *Segment) hasProperty(property properties.Property) bool {
|
||||||
|
@ -168,15 +184,16 @@ func (segment *Segment) migrateTemplate() {
|
||||||
segment.Properties[properties.SegmentTemplate] = segment.writer.Template()
|
segment.Properties[properties.SegmentTemplate] = segment.writer.Template()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (segment *Segment) migrateIconOverride(icon properties.Property, overrideValue string) {
|
func (segment *Segment) migrateIconOverride(property properties.Property, overrideValue string) {
|
||||||
if !segment.hasProperty(icon) {
|
if !segment.hasProperty(property) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
template := segment.Properties.GetString(properties.SegmentTemplate, segment.writer.Template())
|
template := segment.Properties.GetString(properties.SegmentTemplate, segment.writer.Template())
|
||||||
if strings.Contains(template, overrideValue) {
|
if strings.Contains(template, overrideValue) {
|
||||||
template = strings.ReplaceAll(template, overrideValue, segment.Properties.GetString(icon, ""))
|
template = strings.ReplaceAll(template, overrideValue, segment.Properties.GetString(property, ""))
|
||||||
}
|
}
|
||||||
segment.Properties[properties.SegmentTemplate] = template
|
segment.Properties[properties.SegmentTemplate] = template
|
||||||
|
delete(segment.Properties, property)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (segment *Segment) migrateColorOverride(property properties.Property, template string) {
|
func (segment *Segment) migrateColorOverride(property properties.Property, template string) {
|
||||||
|
@ -184,6 +201,7 @@ func (segment *Segment) migrateColorOverride(property properties.Property, templ
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
color := segment.Properties.GetColor(property, "")
|
color := segment.Properties.GetColor(property, "")
|
||||||
|
delete(segment.Properties, property)
|
||||||
if len(color) == 0 {
|
if len(color) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -201,6 +219,7 @@ func (segment *Segment) migrateInlineColorOverride(property properties.Property,
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
color := segment.Properties.GetColor(property, "")
|
color := segment.Properties.GetColor(property, "")
|
||||||
|
delete(segment.Properties, property)
|
||||||
if len(color) == 0 {
|
if len(color) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue