]> granicus.if.org Git - vim/commitdiff
patch 9.0.0779: lsl and lm3 file extensions are not recognized v9.0.0779
authorDoug Kearns <dougkearns@gmail.com>
Mon, 17 Oct 2022 12:32:17 +0000 (13:32 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 17 Oct 2022 12:32:17 +0000 (13:32 +0100)
Problem:    lsl and lm3 file extensions are not recognized.
Solution:   Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384)

runtime/autoload/dist/ft.vim
runtime/doc/filetype.txt
runtime/filetype.vim
src/testdir/test_filetype.vim
src/version.c

index d5c21ac184261c40a7c9ded55d2924edee2079d4..8f744457caf90b5c200996662b881fa4777a87c8 100644 (file)
@@ -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
index d04e4ac1324bf8be1c9e0e4b17735dc510b27287..23501f0dea2a3017024f79378a7e394f063142db 100644 (file)
@@ -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|
index eb4a5d76b5009deebf555336659584c90f1fd58b..f3fbfbc5dc011d21dc5cfa9e77415fa719e3fc35 100644 (file)
@@ -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
 
index 281642ee9a6693c19c1d17f70469f656f7b1b3bb..8fd6e009263dac85ddd4886a8190c3353f290bed 100644 (file)
@@ -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
index e6b7ee1e7c5dbde41e3757385e79cf3cddc56182..b872e3f6f90d836cbbb54534692e010b0031d399 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    779,
 /**/
     778,
 /**/