Skip to content

Commit 1bddc8d

Browse files
committed
UpdateRules: move include logic to a helper function
1 parent 3aed20f commit 1bddc8d

File tree

1 file changed

+41
-34
lines changed

1 file changed

+41
-34
lines changed

internal/buffer/buffer.go

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,45 @@ func findRuntimeSyntaxDef(name string, header *highlight.Header) *highlight.Def
740740
return nil
741741
}
742742

743+
func resolveIncludes(syndef *highlight.Def) {
744+
if !highlight.HasIncludes(syndef) {
745+
return
746+
}
747+
includes := highlight.GetIncludes(syndef)
748+
749+
var files []*highlight.File
750+
for _, f := range config.ListRuntimeFiles(config.RTSyntax) {
751+
data, err := f.Data()
752+
if err != nil {
753+
screen.TermMessage("Error loading syntax file " + f.Name() + ": " + err.Error())
754+
continue
755+
}
756+
757+
header, err := highlight.MakeHeaderYaml(data)
758+
if err != nil {
759+
screen.TermMessage("Error parsing syntax file " + f.Name() + ": " + err.Error())
760+
continue
761+
}
762+
763+
for _, i := range includes {
764+
if header.FileType == i {
765+
file, err := highlight.ParseFile(data)
766+
if err != nil {
767+
screen.TermMessage("Error parsing syntax file " + f.Name() + ": " + err.Error())
768+
continue
769+
}
770+
files = append(files, file)
771+
break
772+
}
773+
}
774+
if len(files) >= len(includes) {
775+
break
776+
}
777+
}
778+
779+
highlight.ResolveIncludes(syndef, files)
780+
}
781+
743782
// UpdateRules updates the syntax rules and filetype for this buffer
744783
// This is called when the colorscheme changes
745784
func (b *Buffer) UpdateRules() {
@@ -922,40 +961,8 @@ func (b *Buffer) UpdateRules() {
922961
}
923962
}
924963

925-
if b.SyntaxDef != nil && highlight.HasIncludes(b.SyntaxDef) {
926-
includes := highlight.GetIncludes(b.SyntaxDef)
927-
928-
var files []*highlight.File
929-
for _, f := range config.ListRuntimeFiles(config.RTSyntax) {
930-
data, err := f.Data()
931-
if err != nil {
932-
screen.TermMessage("Error loading syntax file " + f.Name() + ": " + err.Error())
933-
continue
934-
}
935-
936-
header, err := highlight.MakeHeaderYaml(data)
937-
if err != nil {
938-
screen.TermMessage("Error parsing syntax file " + f.Name() + ": " + err.Error())
939-
continue
940-
}
941-
942-
for _, i := range includes {
943-
if header.FileType == i {
944-
file, err := highlight.ParseFile(data)
945-
if err != nil {
946-
screen.TermMessage("Error parsing syntax file " + f.Name() + ": " + err.Error())
947-
continue
948-
}
949-
files = append(files, file)
950-
break
951-
}
952-
}
953-
if len(files) >= len(includes) {
954-
break
955-
}
956-
}
957-
958-
highlight.ResolveIncludes(b.SyntaxDef, files)
964+
if b.SyntaxDef != nil {
965+
resolveIncludes(b.SyntaxDef)
959966
}
960967

961968
if b.SyntaxDef != nil {

0 commit comments

Comments
 (0)