mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -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',
|
l = 'lex',
|
||||||
lhs = 'lhaskell',
|
lhs = 'lhaskell',
|
||||||
lidr = 'lidris2',
|
lidr = 'lidris2',
|
||||||
ll = 'lifelines',
|
|
||||||
ly = 'lilypond',
|
ly = 'lilypond',
|
||||||
ily = 'lilypond',
|
ily = 'lilypond',
|
||||||
liquid = 'liquid',
|
liquid = 'liquid',
|
||||||
@ -697,6 +696,7 @@ local extension = {
|
|||||||
lt = 'lite',
|
lt = 'lite',
|
||||||
lite = 'lite',
|
lite = 'lite',
|
||||||
livemd = 'livebook',
|
livemd = 'livebook',
|
||||||
|
ll = detect.ll,
|
||||||
log = detect.log,
|
log = detect.log,
|
||||||
Log = detect.log,
|
Log = detect.log,
|
||||||
LOG = detect.log,
|
LOG = detect.log,
|
||||||
|
@ -868,6 +868,16 @@ function M.log(path, _)
|
|||||||
end
|
end
|
||||||
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
|
--- @type vim.filetype.mapfn
|
||||||
function M.lpc(_, bufnr)
|
function M.lpc(_, bufnr)
|
||||||
if vim.g.lpc_syntax_for_c then
|
if vim.g.lpc_syntax_for_c then
|
||||||
|
@ -2440,6 +2440,24 @@ func Test_inc_file()
|
|||||||
filetype off
|
filetype off
|
||||||
endfunc
|
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()
|
func Test_lsl_file()
|
||||||
filetype on
|
filetype on
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user