@@ -908,14 +908,21 @@ func (b *Buffer) UpdateRules() {
908908 if b .SyntaxDef != nil {
909909 b .Settings ["filetype" ] = b .SyntaxDef .FileType
910910 } else {
911- for _ , f := range config .ListRuntimeFiles (config .RTSyntax ) {
911+ // search for the default file in the user's custom syntax files
912+ for _ , f := range config .ListRealRuntimeFiles (config .RTSyntax ) {
912913 if f .Name () == "default" {
913914 data , err := f .Data ()
914915 if err != nil {
915916 screen .TermMessage ("Error loading syntax file " + f .Name () + ": " + err .Error ())
916917 continue
917918 }
918919
920+ header , err = highlight .MakeHeaderYaml (data )
921+ if err != nil {
922+ screen .TermMessage ("Error parsing header for syntax file " + f .Name () + ": " + err .Error ())
923+ continue
924+ }
925+
919926 file , err := highlight .ParseFile (data )
920927 if err != nil {
921928 screen .TermMessage ("Error parsing syntax file " + f .Name () + ": " + err .Error ())
@@ -931,6 +938,33 @@ func (b *Buffer) UpdateRules() {
931938 break
932939 }
933940 }
941+
942+ if b .SyntaxDef == nil {
943+ // search for the default file in the runtime files
944+ for _ , f := range config .ListRuntimeFiles (config .RTSyntax ) {
945+ if f .Name () == "default" {
946+ data , err := f .Data ()
947+ if err != nil {
948+ screen .TermMessage ("Error loading syntax file " + f .Name () + ": " + err .Error ())
949+ continue
950+ }
951+
952+ file , err := highlight .ParseFile (data )
953+ if err != nil {
954+ screen .TermMessage ("Error parsing syntax file " + f .Name () + ": " + err .Error ())
955+ continue
956+ }
957+
958+ syndef , err := highlight .ParseDef (file , header )
959+ if err != nil {
960+ screen .TermMessage ("Error parsing syntax file " + f .Name () + ": " + err .Error ())
961+ continue
962+ }
963+ b .SyntaxDef = syndef
964+ break
965+ }
966+ }
967+ }
934968 }
935969 }
936970
0 commit comments