diff --git a/cmd/micro/buffer/line_array.go b/cmd/micro/buffer/line_array.go index b5b4676e..b52d4da8 100644 --- a/cmd/micro/buffer/line_array.go +++ b/cmd/micro/buffer/line_array.go @@ -274,3 +274,11 @@ func (la *LineArray) SetMatch(lineN int, m highlight.LineMatch) { func (la *LineArray) Match(lineN int) highlight.LineMatch { return la.lines[lineN].match } + +func (la *LineArray) Rehighlight(lineN int) bool { + return la.lines[lineN].rehighlight +} + +func (la *LineArray) SetRehighlight(lineN int, on bool) { + la.lines[lineN].rehighlight = on +} diff --git a/cmd/micro/display/window.go b/cmd/micro/display/window.go index 404733f5..3ce58ee0 100644 --- a/cmd/micro/display/window.go +++ b/cmd/micro/display/window.go @@ -106,15 +106,15 @@ func (w *BufWindow) displayBuffer() { } // TODO: Rehighlighting - // start := w.StartLine + start := w.StartLine if b.Settings["syntax"].(bool) && b.SyntaxDef != nil { - // if start > 0 && b.lines[start-1].rehighlight { - // b.highlighter.ReHighlightLine(b, start-1) - // b.lines[start-1].rehighlight = false - // } - // - // b.highlighter.ReHighlightStates(b, start) - // + if start > 0 && b.Rehighlight(start-1) { + b.Highlighter.ReHighlightLine(b, start-1) + b.SetRehighlight(start-1, false) + } + + b.Highlighter.ReHighlightStates(b, start) + b.Highlighter.HighlightMatches(b, w.StartLine, w.StartLine+bufHeight) }