Skip to content

Commit 90d911e

Browse files
Renaming bgoverridable to preservebg in bufwindow.go
1 parent 22a70a1 commit 90d911e

File tree

1 file changed

+25
-24
lines changed

1 file changed

+25
-24
lines changed

internal/display/bufwindow.go

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -494,28 +494,28 @@ func (w *BufWindow) displayBuffer() {
494494
}
495495
bloc.X = bslice
496496

497+
// returns the rune to be drawn, style of it and if the bg should be preserved
497498
getRuneStyle := func(r rune, style tcell.Style, isplaceholder bool) (rune, tcell.Style, bool) {
498-
bgoverridable := true
499499
if nColsBeforeStart > 0 || vloc.Y < 0 || isplaceholder {
500-
return r, style, bgoverridable
500+
return r, style, false
501501
}
502502

503503
for _, mb := range matchingBraces {
504504
if mb.X == bloc.X && mb.Y == bloc.Y {
505505
if b.Settings["matchbracestyle"].(string) == "highlight" {
506506
if s, ok := config.Colorscheme["match-brace"]; ok {
507-
return r, s, bgoverridable
507+
return r, s, false
508508
} else {
509-
return r, style.Reverse(true), bgoverridable
509+
return r, style.Reverse(true), false
510510
}
511511
} else {
512-
return r, style.Underline(true), bgoverridable
512+
return r, style.Underline(true), false
513513
}
514514
}
515515
}
516516

517517
if r != '\t' && r != ' '{
518-
return r, style, bgoverridable
518+
return r, style, false
519519
}
520520

521521
var returnrune rune
@@ -538,16 +538,17 @@ func (w *BufWindow) displayBuffer() {
538538
}
539539
}
540540

541+
preservebg := false
541542
if b.Settings["hltaberrors"].(bool) && bloc.X < leadingwsEnd {
542543
if s, ok := config.Colorscheme["tab-error"]; ok {
543544
if b.Settings["tabstospaces"].(bool) && r == '\t' {
544545
fg, _, _ := s.Decompose()
545546
style = style.Background(fg)
546-
bgoverridable = false
547+
preservebg = true
547548
} else if !b.Settings["tabstospaces"].(bool) && r == ' ' {
548549
fg, _, _ := s.Decompose()
549550
style = style.Background(fg)
550-
bgoverridable = false
551+
preservebg = true
551552
}
552553
}
553554
}
@@ -565,16 +566,16 @@ func (w *BufWindow) displayBuffer() {
565566
if hl {
566567
fg, _, _ := s.Decompose()
567568
style = style.Background(fg)
568-
bgoverridable = false
569+
preservebg = true
569570
}
570571
}
571572
}
572573
}
573574

574-
return returnrune, style, bgoverridable
575+
return drawrune, style, preservebg
575576
}
576577

577-
draw := func(r rune, combc []rune, style tcell.Style, highlight bool, showcursor bool, bgoverridable bool) {
578+
draw := func(r rune, combc []rune, style tcell.Style, highlight bool, showcursor bool, preservebg bool) {
578579
defer func() {
579580
if nColsBeforeStart <= 0 {
580581
vloc.X++
@@ -597,10 +598,10 @@ func (w *BufWindow) displayBuffer() {
597598
_, origBg, _ := style.Decompose()
598599
_, defBg, _ := config.DefStyle.Decompose()
599600

600-
// syntax or hlsearch highlighting with non-default background takes precedence
601-
// over cursor-line and color-column
602-
if bgoverridable {
603-
bgoverridable = origBg == defBg
601+
if !preservebg {
602+
// syntax or hlsearch highlighting with non-default background takes precedence
603+
// over cursor-line and color-column
604+
preservebg = origBg != defBg
604605
}
605606

606607
for _, c := range cursors {
@@ -615,7 +616,7 @@ func (w *BufWindow) displayBuffer() {
615616
}
616617
}
617618

618-
if b.Settings["cursorline"].(bool) && w.active && bgoverridable &&
619+
if b.Settings["cursorline"].(bool) && w.active && !preservebg &&
619620
!c.HasSelection() && c.Y == bloc.Y {
620621
if s, ok := config.Colorscheme["cursor-line"]; ok {
621622
fg, _, _ := s.Decompose()
@@ -633,7 +634,7 @@ func (w *BufWindow) displayBuffer() {
633634
}
634635

635636
if s, ok := config.Colorscheme["color-column"]; ok {
636-
if colorcolumn != 0 && vloc.X-w.gutterOffset+w.StartCol == colorcolumn && bgoverridable {
637+
if colorcolumn != 0 && vloc.X-w.gutterOffset+w.StartCol == colorcolumn && !preservebg {
637638
fg, _, _ := s.Decompose()
638639
style = style.Background(fg)
639640
}
@@ -736,17 +737,17 @@ func (w *BufWindow) displayBuffer() {
736737
}
737738

738739
for _, r := range word {
739-
drawrune, drawstyle, bgoverridable := getRuneStyle(r.r, r.style, false)
740-
draw(drawrune, r.combc, drawstyle, true, true, bgoverridable)
740+
drawrune, drawstyle, preservebg := getRuneStyle(r.r, r.style, false)
741+
draw(drawrune, r.combc, drawstyle, true, true, preservebg)
741742

742743
// Draw extra characters for tabs or wide runes
743744
for i := 1; i < r.width; i++ {
744745
if r.r == '\t' {
745-
drawrune, drawstyle, bgoverridable = getRuneStyle('\t', r.style, false)
746+
drawrune, drawstyle, preservebg = getRuneStyle('\t', r.style, false)
746747
} else {
747-
drawrune, drawstyle, bgoverridable = getRuneStyle(' ', r.style, true)
748+
drawrune, drawstyle, preservebg = getRuneStyle(' ', r.style, true)
748749
}
749-
draw(drawrune, nil, drawstyle, true, false, bgoverridable)
750+
draw(drawrune, nil, drawstyle, true, false, preservebg)
750751
}
751752
bloc.X++
752753
}
@@ -791,8 +792,8 @@ func (w *BufWindow) displayBuffer() {
791792

792793
if vloc.X != maxWidth {
793794
// Display newline within a selection
794-
drawrune, drawstyle, bgoverridable := getRuneStyle(' ', config.DefStyle, true)
795-
draw(drawrune, nil, drawstyle, true, true, bgoverridable)
795+
drawrune, drawstyle, preservebg := getRuneStyle(' ', config.DefStyle, true)
796+
draw(drawrune, nil, drawstyle, true, true, preservebg)
796797
}
797798

798799
bloc.X = w.StartCol

0 commit comments

Comments
 (0)