@@ -295,6 +295,7 @@ let s:filename_checks = {
295295 \ ' lss' : [' file.lss' ],
296296 \ ' lua' : [' file.lua' , ' file.rockspec' , ' file.nse' ],
297297 \ ' lynx' : [' lynx.cfg' ],
298+ \ ' matlab' : [' file.m' ],
298299 \ ' m3build' : [' m3makefile' , ' m3overrides' ],
299300 \ ' m3quake' : [' file.quake' , ' cm3.cfg' ],
300301 \ ' m4' : [' file.at' ],
@@ -351,6 +352,7 @@ let s:filename_checks = {
351352 \ ' obj' : [' file.obj' ],
352353 \ ' ocaml' : [' file.ml' , ' file.mli' , ' file.mll' , ' file.mly' , ' .ocamlinit' , ' file.mlt' , ' file.mlp' , ' file.mlip' , ' file.mli.cppo' , ' file.ml.cppo' ],
353354 \ ' occam' : [' file.occ' ],
355+ \ ' octave' : [' octaverc' , ' .octaverc' , ' octave.conf' ],
354356 \ ' omnimark' : [' file.xom' , ' file.xin' ],
355357 \ ' opam' : [' opam' , ' file.opam' , ' file.opam.template' ],
356358 \ ' openroad' : [' file.or' ],
@@ -851,4 +853,96 @@ func Test_dsl_file()
851853 filetype off
852854endfunc
853855
856+ func Test_m_file ()
857+ filetype on
858+
859+ call writefile ([' looks like Matlab' ], ' Xfile.m' )
860+ split Xfile.m
861+ call assert_equal (' matlab' , &filetype )
862+ bwipe!
863+
864+ let g: filetype_m = ' octave'
865+ split Xfile.m
866+ call assert_equal (' octave' , &filetype )
867+ bwipe!
868+ unlet g: filetype_m
869+
870+ " Test dist#ft#FTm()
871+
872+ " Objective-C
873+
874+ call writefile ([' // Objective-C line comment' ], ' Xfile.m' )
875+ split Xfile.m
876+ call assert_equal (' objc' , &filetype )
877+ bwipe!
878+
879+ call writefile ([' /* Objective-C block comment */' ], ' Xfile.m' )
880+ split Xfile.m
881+ call assert_equal (' objc' , &filetype )
882+ bwipe!
883+
884+ call writefile ([' #import "test.m"' ], ' Xfile.m' )
885+ split Xfile.m
886+ call assert_equal (' objc' , &filetype )
887+ bwipe!
888+
889+ " Octave
890+
891+ call writefile ([' # Octave line comment' ], ' Xfile.m' )
892+ split Xfile.m
893+ call assert_equal (' octave' , &filetype )
894+ bwipe!
895+
896+ call writefile ([' #{' , ' Octave block comment' , ' #}' ], ' Xfile.m' )
897+ split Xfile.m
898+ call assert_equal (' octave' , &filetype )
899+ bwipe!
900+
901+ call writefile ([' %{' , ' Octave block comment' , ' %}' ], ' Xfile.m' )
902+ split Xfile.m
903+ call assert_equal (' octave' , &filetype )
904+ bwipe!
905+
906+ call writefile ([' %!test "Octave test"' ], ' Xfile.m' )
907+ split Xfile.m
908+ call assert_equal (' octave' , &filetype )
909+ bwipe!
910+
911+ call writefile ([' unwind_protect' ], ' Xfile.m' )
912+ split Xfile.m
913+ call assert_equal (' octave' , &filetype )
914+ bwipe!
915+
916+ call writefile ([' function test(); 42; endfunction' ], ' Xfile.m' )
917+ split Xfile.m
918+ call assert_equal (' octave' , &filetype )
919+ bwipe!
920+
921+ " Mathematica
922+
923+ call writefile ([' (* Mathematica comment' ], ' Xfile.m' )
924+ split Xfile.m
925+ call assert_equal (' mma' , &filetype )
926+ bwipe!
927+
928+ " Murphi
929+
930+ call writefile ([' -- Murphi comment' ], ' Xfile.m' )
931+ split Xfile.m
932+ call assert_equal (' murphi' , &filetype )
933+ bwipe!
934+
935+ call writefile ([' /* Murphi block comment */' , ' Type' ], ' Xfile.m' )
936+ split Xfile.m
937+ call assert_equal (' murphi' , &filetype )
938+ bwipe!
939+
940+ call writefile ([' Type' ], ' Xfile.m' )
941+ split Xfile.m
942+ call assert_equal (' murphi' , &filetype )
943+ bwipe!
944+
945+ call delete (' Xfile.m' )
946+ filetype off
947+ endfunc
854948" vim: shiftwidth = 2 sts = 2 expandtab
0 commit comments