1
1
mirror of https://github.com/walles/moar.git synced 2024-08-17 07:50:35 +03:00

Attempt to set status bar color from theme

Fails due to: https://github.com/alecthomas/chroma/issues/867
This commit is contained in:
Johan Walles 2023-10-07 22:28:52 +02:00
parent 64e9d4db5e
commit b5299f6fbc
2 changed files with 14 additions and 11 deletions

View File

@ -482,18 +482,10 @@ func (p *Pager) initStyle() {
p.numberStyle = parsedTokens[0].Style
}
statusBarStyleAnsi := toAnsiSgr(chroma.None, *p.ChromaStyle, *p.ChromaFormatter) + "X"
statusBarStyleAnsi := toAnsiSgr(chroma.Background, *p.ChromaStyle, *p.ChromaFormatter) + "X"
if statusBarStyleAnsi == "X" {
p.statusBarStyle = twin.StyleDefault
} else {
// Turn statusBarStyleAnsi into a twin.Style
statusBarStyleAsLine := NewLine(statusBarStyleAnsi)
parsedTokens := statusBarStyleAsLine.HighlightedTokens("", nil).Cells
if len(parsedTokens) != 1 {
panic(fmt.Sprint("Not exactly one token: ", len(parsedTokens)))
}
p.statusBarStyle = parsedTokens[0].Style
}
switch p.StatusBarStyleOption {
case STATUSBAR_STYLE_INVERSE:
p.statusBarStyle = p.statusBarStyle.WithAttr(twin.AttrReverse)
@ -504,6 +496,15 @@ func (p *Pager) initStyle() {
default:
panic(fmt.Sprint("Unknown status bar style option: ", p.StatusBarStyleOption))
}
} else {
// Turn statusBarStyleAnsi into a twin.Style
statusBarStyleAsLine := NewLine(statusBarStyleAnsi)
parsedTokens := statusBarStyleAsLine.HighlightedTokens("", nil).Cells
if len(parsedTokens) != 1 {
panic(fmt.Sprint("Not exactly one token: ", len(parsedTokens)))
}
p.statusBarStyle = parsedTokens[0].Style
}
}
// StartPaging brings up the pager on screen

View File

@ -590,6 +590,8 @@ func TestInitStyle(t *testing.T) {
}
testMe.initStyle()
assert.Equal(t, testMe.linePrefix, "\x1b[38;2;235;219;178m")
assert.Equal(t, testMe.statusBarStyle,
twin.StyleDefault.Foreground(twin.NewColorHex(0xebdbb2)).Background(twin.NewColorHex(0x282828)))
}
func benchmarkSearch(b *testing.B, highlighted bool) {