patch 9.1.1466: filetype: not all lex files are recognized

Problem:  filetype: not all lex files are recognized
Solution: detect *.ll as lex, llvm or lifelines filetype, depending on
          the content (Eisuke Kawashima)

closes: #17560

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Eisuke Kawashima
2025-06-17 20:30:52 +02:00
committed by Christian Brabandt
parent acd04b2fd7
commit 48295111e5
4 changed files with 21 additions and 4 deletions

View File

@ -3,7 +3,7 @@ vim9script
# Vim functions for file type detection
#
# Maintainer: The Vim Project <https://github.com/vim/vim>
# Last Change: 2025 Apr 21
# Last Change: 2025 Jun 17
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
# These functions are moved here from runtime/filetype.vim to make startup
@ -184,9 +184,18 @@ enddef
export def FTll()
if getline(1) =~ ';\|\<source_filename\>\|\<target\>'
setf llvm
else
setf lifelines
return
endif
var n = 1
while n < 100 && n <= line("$")
var line = getline(n)
if line =~ '^\s*%'
setf lex
return
endif
n += 1
endwhile
setf lifelines
enddef
export def FTlpc()

View File

@ -1420,7 +1420,7 @@ au BufNewFile,BufRead */etc/sensors.conf,*/etc/sensors3.conf setf sensors
" LFTP
au BufNewFile,BufRead lftp.conf,.lftprc,*lftp/rc setf lftp
" Lifelines (or Lex for C++!)
" Lifelines, LLVM, or Lex for C++
au BufNewFile,BufRead *.ll call dist#ft#FTll()
" Lilo: Linux loader

View File

@ -2634,6 +2634,12 @@ func Test_ll_file()
call assert_equal('llvm', &filetype)
bwipe!
" lex (C++)
call writefile(['%{', '#include <iostream>', '%}'], 'Xfile.ll', 'D')
split Xfile.ll
call assert_equal('lex', &filetype)
bwipe!
" lifelines
call writefile(['proc main() {}'], 'Xfile.ll', 'D')
split Xfile.ll

View File

@ -709,6 +709,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1466,
/**/
1465,
/**/