From: Doug Kearns Date: Mon, 17 Oct 2022 12:32:17 +0000 (+0100) Subject: patch 9.0.0779: lsl and lm3 file extensions are not recognized X-Git-Tag: v9.0.0779 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4ac8e7948cb3e07bc4598ede8b274891d14dfa7c;p=vim patch 9.0.0779: lsl and lm3 file extensions are not recognized Problem: lsl and lm3 file extensions are not recognized. Solution: Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384) --- diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index d5c21ac18..8f744457c 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -1087,5 +1087,18 @@ export def FTdat() endif enddef +export def FTlsl() + if exists("g:filetype_lsl") + exe "setf " .. g:filetype_lsl + endif + + var line = getline(nextnonblank(1)) + if line =~ '^\s*%' || line =~# ':\s*trait\s*$' + setf larch + else + setf lsl + endif +enddef + # Uncomment this line to check for compilation errors early # defcompile diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index d04e4ac13..23501f0de 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -150,6 +150,7 @@ variables can be used to overrule the filetype used for certain extensions: *.fs g:filetype_fs |ft-forth-syntax| *.i g:filetype_i |ft-progress-syntax| *.inc g:filetype_inc + *.lsl g:filetype_lsl *.m g:filetype_m |ft-mathematica-syntax| *.mod g:filetype_mod *.p g:filetype_p |ft-pascal-syntax| diff --git a/runtime/filetype.vim b/runtime/filetype.vim index eb4a5d76b..f3fbfbc5d 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1032,6 +1032,9 @@ au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig " Lace (ISE) au BufNewFile,BufRead *.ace,*.ACE setf lace +" Larch Shared Language +au BufNewFile,BufRead .lsl call dist#ft#FTlsl() + " Latexmkrc au BufNewFile,BufRead .latexmkrc,latexmkrc setf perl @@ -1122,7 +1125,7 @@ au BufNewFile,BufRead .luacheckrc setf lua au BufNewFile,BufRead *.rockspec setf lua " Linden Scripting Language (Second Life) -au BufNewFile,BufRead *.lsl setf lsl +au BufNewFile,BufRead *.lsl call dist#ft#FTlsl() " Lynx style file (or LotusScript!) au BufNewFile,BufRead *.lss setf lss @@ -1220,6 +1223,9 @@ au BufNewFile,BufRead *.m2,*.DEF,*.mi setf modula2 " Modula-3 (.m3, .i3, .mg, .ig) au BufNewFile,BufRead *.[mi][3g] setf modula3 +" Larch/Modula-3 +au BufNewFile,BufRead *.lm3 setf modula3 + " Monk au BufNewFile,BufRead *.isc,*.monk,*.ssc,*.tsc setf monk diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 281642ee9..8fd6e0092 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -365,7 +365,7 @@ let s:filename_checks = { \ 'mmp': ['file.mmp'], \ 'modconf': ['/etc/modules.conf', '/etc/modules', '/etc/conf.modules', '/etc/modprobe.file', 'any/etc/conf.modules', 'any/etc/modprobe.file', 'any/etc/modules', 'any/etc/modules.conf'], \ 'modula2': ['file.m2', 'file.mi'], - \ 'modula3': ['file.m3', 'file.mg', 'file.i3', 'file.ig'], + \ 'modula3': ['file.m3', 'file.mg', 'file.i3', 'file.ig', 'file.lm3'], \ 'monk': ['file.isc', 'file.monk', 'file.ssc', 'file.tsc'], \ 'moo': ['file.moo'], \ 'moonscript': ['file.moon'], @@ -1931,4 +1931,35 @@ func Test_inc_file() filetype off endfunc +func Test_lsl_file() + filetype on + + call writefile(['looks like Linden Scripting Language'], 'Xfile.lsl', 'D') + split Xfile.lsl + call assert_equal('lsl', &filetype) + bwipe! + + " Test dist#ft#FTlsl() + + let g:filetype_lsl = 'larch' + split Xfile.lsl + call assert_equal('larch', &filetype) + bwipe! + unlet g:filetype_lsl + + " Larch Shared Language + + call writefile(['% larch comment'], 'Xfile.lsl') + split Xfile.lsl + call assert_equal('larch', &filetype) + bwipe! + + call writefile(['foo: trait'], 'Xfile.lsl') + split Xfile.lsl + call assert_equal('larch', &filetype) + bwipe! + + filetype off +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index e6b7ee1e7..b872e3f6f 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 779, /**/ 778, /**/