From 6ffabd626fe156e8c112f88babf5e6466b8b908c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6ran=20Karl?= <3951388+JoeKar@users.noreply.github.com> Date: Sun, 17 Mar 2024 19:40:33 +0100 Subject: [PATCH] buffer: Let the user override the default.yaml --- internal/buffer/buffer.go | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index f3d28e56..60490dd1 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -908,7 +908,8 @@ func (b *Buffer) UpdateRules() { if b.SyntaxDef != nil { b.Settings["filetype"] = b.SyntaxDef.FileType } else { - for _, f := range config.ListRuntimeFiles(config.RTSyntax) { + // search for the default file in the user's custom syntax files + for _, f := range config.ListRealRuntimeFiles(config.RTSyntax) { if f.Name() == "default" { data, err := f.Data() if err != nil { @@ -916,6 +917,12 @@ func (b *Buffer) UpdateRules() { continue } + header, err = highlight.MakeHeaderYaml(data) + if err != nil { + screen.TermMessage("Error parsing header for syntax file " + f.Name() + ": " + err.Error()) + continue + } + file, err := highlight.ParseFile(data) if err != nil { screen.TermMessage("Error parsing syntax file " + f.Name() + ": " + err.Error()) @@ -931,6 +938,33 @@ func (b *Buffer) UpdateRules() { break } } + + if b.SyntaxDef == nil { + // search for the default file in the runtime files + for _, f := range config.ListRuntimeFiles(config.RTSyntax) { + if f.Name() == "default" { + data, err := f.Data() + if err != nil { + screen.TermMessage("Error loading syntax file " + f.Name() + ": " + err.Error()) + continue + } + + file, err := highlight.ParseFile(data) + if err != nil { + screen.TermMessage("Error parsing syntax file " + f.Name() + ": " + err.Error()) + continue + } + + syndef, err := highlight.ParseDef(file, header) + if err != nil { + screen.TermMessage("Error parsing syntax file " + f.Name() + ": " + err.Error()) + continue + } + b.SyntaxDef = syndef + break + } + } + } } }