Add auto-summary settings
This commit is contained in:
@@ -8,9 +8,9 @@ import (
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
// Two-row tab bar: labels row, underline row. The PTY viewport's top
|
||||
// Three-row tab bar: labels row, active-thread summary row, underline row. The PTY viewport's top
|
||||
// row is therefore mainTop == tabBarRows + 1.
|
||||
const tabBarRows = 2
|
||||
const tabBarRows = 3
|
||||
|
||||
// drawTabBar renders the top tab strip across the full host width.
|
||||
// Tabs share the available width with a flex layout — each visible
|
||||
@@ -139,7 +139,8 @@ func (st *uiState) drawTabBar() {
|
||||
}
|
||||
|
||||
var b strings.Builder
|
||||
// Clear both rows so a stale label from the previous frame can't
|
||||
// Clear all tab-bar rows so stale labels or summaries from the
|
||||
// previous frame can't
|
||||
// bleed through. Use ECH clamped to `width` (= childCols) instead of
|
||||
// `\x1b[2K`: 2K wipes the entire line including the sidebar columns,
|
||||
// and if drawSidebar's chrome cache is fresh it won't repaint to
|
||||
@@ -147,6 +148,7 @@ func (st *uiState) drawTabBar() {
|
||||
// and content should be.
|
||||
fmt.Fprintf(&b, "\x1b[1;1H\x1b[%dX", width)
|
||||
fmt.Fprintf(&b, "\x1b[2;1H\x1b[%dX", width)
|
||||
fmt.Fprintf(&b, "\x1b[3;1H\x1b[%dX", width)
|
||||
|
||||
for _, t := range tabs {
|
||||
// Row 1: centre-ish label inside the tab cell.
|
||||
@@ -170,9 +172,9 @@ func (st *uiState) drawTabBar() {
|
||||
b.WriteString(strings.Repeat(" ", rightPad))
|
||||
b.WriteString(styleReset)
|
||||
|
||||
// Row 2: underline. Thick accent for the active tab, faint
|
||||
// Row 3: underline. Thick accent for the active tab, faint
|
||||
// border for the rest.
|
||||
fmt.Fprintf(&b, "\x1b[2;%dH", t.startCol)
|
||||
fmt.Fprintf(&b, "\x1b[3;%dH", t.startCol)
|
||||
if t.active {
|
||||
b.WriteString(styleAccent)
|
||||
b.WriteString(strings.Repeat("━", t.width))
|
||||
@@ -189,10 +191,14 @@ func (st *uiState) drawTabBar() {
|
||||
fmt.Fprintf(&b, "\x1b[1;%dH %s%s%s ", hintCol, styleDim, newHint, styleReset)
|
||||
// Underline continues faintly under the hint so the strip
|
||||
// reads as one bar.
|
||||
fmt.Fprintf(&b, "\x1b[2;%dH%s%s%s",
|
||||
fmt.Fprintf(&b, "\x1b[3;%dH%s%s%s",
|
||||
hintCol, styleBorder, strings.Repeat("─", newHintW), styleReset)
|
||||
}
|
||||
|
||||
if summary := st.activeSummaryText(width - 2); summary != "" {
|
||||
fmt.Fprintf(&b, "\x1b[2;1H %s%s%s", styleDim, summary, styleReset)
|
||||
}
|
||||
|
||||
frame := b.String()
|
||||
st.chromeCacheMu.Lock()
|
||||
if frame == st.tabBarCache {
|
||||
|
||||
Reference in New Issue
Block a user