mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
vim-patch:9.1.0866: filetype: LLVM IR files are not recognized (#31228)
Problem: filetype: LLVM IR files are not recognized
Solution: detect '*.ll' files either as lifelines or llvm filetype
(Wu, Zhenyu)
closes: vim/vim#15824
bc32bbddcf
N/A patch:
vim-patch:7e4b861: runtime(filetype): remove duplicated *.org file pattern
Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
This commit is contained in:
parent
6e4df18b45
commit
fbbb9d6f7b
12
runtime/ftplugin/llvm.vim
Normal file
12
runtime/ftplugin/llvm.vim
Normal file
@ -0,0 +1,12 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: LLVM IR
|
||||
" Last Change: 2024 Oct 22
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setl comments=:;
|
||||
setl commentstring=;\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring< comments<"
|
@ -682,7 +682,6 @@ local extension = {
|
||||
l = 'lex',
|
||||
lhs = 'lhaskell',
|
||||
lidr = 'lidris2',
|
||||
ll = 'lifelines',
|
||||
ly = 'lilypond',
|
||||
ily = 'lilypond',
|
||||
liquid = 'liquid',
|
||||
@ -697,6 +696,7 @@ local extension = {
|
||||
lt = 'lite',
|
||||
lite = 'lite',
|
||||
livemd = 'livebook',
|
||||
ll = detect.ll,
|
||||
log = detect.log,
|
||||
Log = detect.log,
|
||||
LOG = detect.log,
|
||||
|
@ -868,6 +868,16 @@ function M.log(path, _)
|
||||
end
|
||||
end
|
||||
|
||||
--- @type vim.filetype.mapfn
|
||||
function M.ll(_, bufnr)
|
||||
local first_line = getline(bufnr, 1)
|
||||
if matchregex(first_line, [[;\|\<source_filename\>\|\<target\>]]) then
|
||||
return 'llvm'
|
||||
else
|
||||
return 'lifelines'
|
||||
end
|
||||
end
|
||||
|
||||
--- @type vim.filetype.mapfn
|
||||
function M.lpc(_, bufnr)
|
||||
if vim.g.lpc_syntax_for_c then
|
||||
|
@ -2440,6 +2440,24 @@ func Test_inc_file()
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
func Test_ll_file()
|
||||
filetype on
|
||||
|
||||
" LLVM IR
|
||||
call writefile(['target triple = "nvptx64-nvidia-cuda"'], 'Xfile.ll', 'D')
|
||||
split Xfile.ll
|
||||
call assert_equal('llvm', &filetype)
|
||||
bwipe!
|
||||
|
||||
" lifelines
|
||||
call writefile(['proc main() {}'], 'Xfile.ll', 'D')
|
||||
split Xfile.ll
|
||||
call assert_equal('lifelines', &filetype)
|
||||
bwipe!
|
||||
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
func Test_lsl_file()
|
||||
filetype on
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user