}
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)
}
}
}
// 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