From 477bdb3dc8cab1181630ddcf465831a1b2f87294 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Tue, 28 Jan 2020 18:34:44 -0500 Subject: [PATCH] Empty highlighting for unknown filetypes --- internal/buffer/buffer.go | 17 ++++++++++------- pkg/highlight/highlighter.go | 2 ++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index 9e3cfcc9..e4af6be5 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -610,13 +610,16 @@ func (b *Buffer) UpdateRules() { } if b.Highlighter == nil || syntaxFile != "" { - if b.SyntaxDef != nil { - b.Settings["filetype"] = b.SyntaxDef.FileType - b.Highlighter = highlight.NewHighlighter(b.SyntaxDef) - if b.Settings["syntax"].(bool) { - b.Highlighter.HighlightStates(b) - b.Highlighter.HighlightMatches(b, 0, b.End().Y) - } + b.Settings["filetype"] = b.SyntaxDef.FileType + } else { + b.SyntaxDef = &highlight.EmptyDef + } + + if b.SyntaxDef != nil { + b.Highlighter = highlight.NewHighlighter(b.SyntaxDef) + if b.Settings["syntax"].(bool) { + b.Highlighter.HighlightStates(b) + b.Highlighter.HighlightMatches(b, 0, b.End().Y) } } } diff --git a/pkg/highlight/highlighter.go b/pkg/highlight/highlighter.go index ec8eeaee..ae7c71b3 100644 --- a/pkg/highlight/highlighter.go +++ b/pkg/highlight/highlighter.go @@ -68,6 +68,8 @@ func combineLineMatch(src, dst LineMatch) LineMatch { // A State represents the region at the end of a line type State *region +var EmptyDef = Def{nil, &rules{}} + // LineStates is an interface for a buffer-like object which can also store the states and matches for every line type LineStates interface { LineBytes(n int) []byte