diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index 772ee00a..19b28f0c 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -907,6 +907,30 @@ func (b *Buffer) UpdateRules() { if b.Highlighter == nil || syntaxFile != "" { if b.SyntaxDef != nil { b.Settings["filetype"] = b.SyntaxDef.FileType + } else { + 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 + } + } } } diff --git a/runtime/syntax/default.yaml b/runtime/syntax/default.yaml new file mode 100644 index 00000000..88397670 --- /dev/null +++ b/runtime/syntax/default.yaml @@ -0,0 +1,16 @@ +filetype: unknown + +detect: + filename: "" + +rules: + # Mails + - special: "[[:alnum:].%_+-]+@[[:alnum:].-]+\\.[[:alpha:]]{2,}" + # URLs + - identifier: "(https?|ftp|ssh)://\\S+\\.\\S+[^])>\\s,.]" + + - comment: + start: "(^|\\s)#" + end: "$" + rules: + - todo: "(TODO|XXX|FIXME):?"