diff --git a/src/engine/block.go b/src/engine/block.go index c3b84dbe..62e9a2c3 100644 --- a/src/engine/block.go +++ b/src/engine/block.go @@ -71,7 +71,7 @@ func (b *Block) enabled() bool { return true } for _, segment := range b.Segments { - if segment.active { + if segment.enabled { return true } } @@ -93,7 +93,7 @@ func (b *Block) renderSegmentsText() { func (b *Block) renderSegments() (string, int) { defer b.writer.Reset() for _, segment := range b.Segments { - if !segment.active { + if !segment.enabled { continue } b.renderSegment(segment) @@ -174,7 +174,7 @@ func (b *Block) debug() (int, []*SegmentTiming) { } start := time.Now() segment.renderText(b.env) - segmentTiming.active = segment.active + segmentTiming.active = segment.enabled segmentTiming.text = segment.text if segmentTiming.active { b.renderSegment(segment) diff --git a/src/engine/block_test.go b/src/engine/block_test.go index c64c279c..a1cb6a11 100644 --- a/src/engine/block_test.go +++ b/src/engine/block_test.go @@ -14,10 +14,10 @@ func TestBlockEnabled(t *testing.T) { Type BlockType }{ {Case: "line break block", Expected: true, Type: LineBreak}, - {Case: "prompt enabled", Expected: true, Type: Prompt, Segments: []*Segment{{active: true}}}, - {Case: "prompt disabled", Expected: false, Type: Prompt, Segments: []*Segment{{active: false}}}, - {Case: "prompt enabled multiple", Expected: true, Type: Prompt, Segments: []*Segment{{active: false}, {active: true}}}, - {Case: "rprompt enabled multiple", Expected: true, Type: RPrompt, Segments: []*Segment{{active: false}, {active: true}}}, + {Case: "prompt enabled", Expected: true, Type: Prompt, Segments: []*Segment{{enabled: true}}}, + {Case: "prompt disabled", Expected: false, Type: Prompt, Segments: []*Segment{{enabled: false}}}, + {Case: "prompt enabled multiple", Expected: true, Type: Prompt, Segments: []*Segment{{enabled: false}, {enabled: true}}}, + {Case: "rprompt enabled multiple", Expected: true, Type: RPrompt, Segments: []*Segment{{enabled: false}, {enabled: true}}}, } for _, tc := range cases { block := &Block{ diff --git a/src/engine/engine.go b/src/engine/engine.go index d102788f..2f9f0567 100644 --- a/src/engine/engine.go +++ b/src/engine/engine.go @@ -243,7 +243,7 @@ func (e *Engine) RenderTooltip(tip string) string { return "" } tooltip.text = tooltip.string() - tooltip.active = true + tooltip.enabled = true // little hack to reuse the current logic block := &Block{ Alignment: Right, diff --git a/src/engine/segment.go b/src/engine/segment.go index e9019e18..bdfc1494 100644 --- a/src/engine/segment.go +++ b/src/engine/segment.go @@ -29,7 +29,7 @@ type Segment struct { writer SegmentWriter text string - active bool + enabled bool env environment.Environment backgroundCache string foregroundCache string @@ -320,7 +320,7 @@ func (segment *Segment) renderText(env environment.Environment) { message := fmt.Sprintf("\noh-my-posh fatal error rendering %s segment:%s\n\n%s\n", segment.Type, err, debug.Stack()) fmt.Println(message) segment.text = "error" - segment.active = true + segment.enabled = true }() err := segment.mapSegmentWithWriter(env) if err != nil || !segment.shouldIncludeFolder() { @@ -328,6 +328,6 @@ func (segment *Segment) renderText(env environment.Environment) { } if segment.writer.Enabled() { segment.text = segment.string() - segment.active = len(strings.TrimSpace(segment.text)) > 0 + segment.enabled = len(strings.ReplaceAll(segment.text, " ", "")) > 0 } }