From 3479c445f81cd3df9f0eda097f5b7503388dfc5d Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 9 Mar 2026 07:27:51 +0200 Subject: tui: remove flame selected underline --- internal/tui/flamegraph/renderer.go | 2 +- internal/tui/flamegraph/renderer_test.go | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/internal/tui/flamegraph/renderer.go b/internal/tui/flamegraph/renderer.go index e4c4043..80390fe 100644 --- a/internal/tui/flamegraph/renderer.go +++ b/internal/tui/flamegraph/renderer.go @@ -476,7 +476,7 @@ func styleForFrame(idx int, frame tuiFrame, selectedPath string, subtreeSet, mat selectedBg = lipgloss.Color("129") selectedFg = lipgloss.Color("15") } - return base.Background(selectedBg).Foreground(selectedFg).Bold(true).Underline(true) + return base.Background(selectedBg).Foreground(selectedFg).Bold(true) } if isMatch { diff --git a/internal/tui/flamegraph/renderer_test.go b/internal/tui/flamegraph/renderer_test.go index c546200..7adc82d 100644 --- a/internal/tui/flamegraph/renderer_test.go +++ b/internal/tui/flamegraph/renderer_test.go @@ -212,6 +212,28 @@ func TestFrameLabelAddsSelectionAndMatchMarkers(t *testing.T) { } } +func TestSelectedFrameStyleDoesNotUnderline(t *testing.T) { + style := styleForFrame( + 1, + tuiFrame{ + Name: "child", + Path: "root" + pathSeparator + "child", + Fill: color.RGBA{R: 120, G: 80, B: 160, A: 255}, + }, + "root"+pathSeparator+"child", + map[int]bool{1: true}, + nil, + 1, + true, + false, + false, + ) + rendered := style.Render(" child ") + if strings.Contains(rendered, "\x1b[4m") || strings.Contains(rendered, "[4;") || strings.Contains(rendered, ";4m") { + t.Fatalf("expected selected flame frame style without underline, got %q", rendered) + } +} + func TestRenderTerminalViewShowsPersistentFilterContext(t *testing.T) { snapshot := &snapshotNode{ Name: "root", -- cgit v1.2.3