mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Filetype detection runs on BufRead and BufNewFile autocommands, both of which can fire without an underlying buffer, so it's incorrect to use <abuf> to determine the file path. Instead, match on <afile> and assume that the buffer we're operating on is the current buffer. This is the same assumption that filetype.vim makes, so it should be safe.
		
			
				
	
	
		
			27 lines
		
	
	
		
			636 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			636 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
if vim.g.did_load_filetypes and vim.g.did_load_filetypes ~= 0 then
 | 
						|
  return
 | 
						|
end
 | 
						|
 | 
						|
-- For now, make this opt-in with a global variable
 | 
						|
if vim.g.do_filetype_lua ~= 1 then
 | 
						|
  return
 | 
						|
end
 | 
						|
 | 
						|
vim.cmd [[
 | 
						|
augroup filetypedetect
 | 
						|
au BufRead,BufNewFile * call v:lua.vim.filetype.match(expand('<afile>'))
 | 
						|
 | 
						|
" These *must* be sourced after the autocommand above is created
 | 
						|
runtime! ftdetect/*.vim
 | 
						|
runtime! ftdetect/*.lua
 | 
						|
 | 
						|
" Set a marker so that the ftdetect scripts are not sourced a second time by filetype.vim
 | 
						|
let g:did_load_ftdetect = 1
 | 
						|
 | 
						|
augroup END
 | 
						|
]]
 | 
						|
 | 
						|
if not vim.g.ft_ignore_pat then
 | 
						|
  vim.g.ft_ignore_pat = "\\.\\(Z\\|gz\\|bz2\\|zip\\|tgz\\)$"
 | 
						|
end
 |