summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Kearns <dougkearns@gmail.com>2022-10-17 13:32:17 +0100
committerBram Moolenaar <Bram@vim.org>2022-10-17 13:32:17 +0100
commit4ac8e7948cb3e07bc4598ede8b274891d14dfa7c (patch)
tree5ba7c4cfcb8365ef4a42534b3f3bcba98b8fa74b
parent4913d420e8e8619cff837372bce87683d6fcaa03 (diff)
patch 9.0.0779: lsl and lm3 file extensions are not recognizedv9.0.0779
Problem: lsl and lm3 file extensions are not recognized. Solution: Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384)
-rw-r--r--runtime/autoload/dist/ft.vim13
-rw-r--r--runtime/doc/filetype.txt1
-rw-r--r--runtime/filetype.vim8
-rw-r--r--src/testdir/test_filetype.vim33
-rw-r--r--src/version.c2
5 files changed, 55 insertions, 2 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index d5c21ac184..8f744457ca 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 d04e4ac132..23501f0dea 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 eb4a5d76b5..f3fbfbc5dc 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 281642ee9a..8fd6e00926 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 e6b7ee1e7c..b872e3f6f9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 779,
+/**/
778,
/**/
777,