mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
Merge pull request #24211 from neovim/backport-24147-to-release-0.9
[Backport release-0.9] fix(ftplugin): respect runtimepath ordering
This commit is contained in:
@@ -30,9 +30,10 @@ augroup filetypeplugin
|
|||||||
for name in split(s, '\.')
|
for name in split(s, '\.')
|
||||||
" Load Lua ftplugins after Vim ftplugins _per directory_
|
" Load Lua ftplugins after Vim ftplugins _per directory_
|
||||||
" TODO(clason): use nvim__get_runtime when supports globs and modeline
|
" TODO(clason): use nvim__get_runtime when supports globs and modeline
|
||||||
exe printf('runtime! ftplugin/%s.vim ftplugin/%s.lua', name, name)
|
exe printf('runtime! ftplugin/%s.vim ftplugin/%s.lua
|
||||||
exe printf('runtime! ftplugin/%s_*.vim ftplugin/%s_*.lua', name, name)
|
\ ftplugin/%s_*.vim ftplugin/%s_*.lua
|
||||||
exe printf('runtime! ftplugin/%s/*.vim ftplugin/%s/*.lua', name, name)
|
\ ftplugin/%s/*.vim ftplugin/%s/*.lua',
|
||||||
|
\ name, name, name, name, name, name)
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
@@ -138,6 +138,30 @@ describe('runtime:', function()
|
|||||||
exec [[set filetype=new-ft]]
|
exec [[set filetype=new-ft]]
|
||||||
eq(1, eval('b:lua_ftplugin'))
|
eq(1, eval('b:lua_ftplugin'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it("'rtp' order is respected", function()
|
||||||
|
local after_ftplugin_folder = table.concat({plug_dir, 'after', 'ftplugin'}, sep)
|
||||||
|
mkdir_p(table.concat({ftplugin_folder, 'new-ft'}, sep))
|
||||||
|
mkdir_p(table.concat({after_ftplugin_folder, 'new-ft'}, sep))
|
||||||
|
exec('set rtp+=' .. plug_dir .. '/after')
|
||||||
|
exec('let g:seq = ""')
|
||||||
|
-- A .lua file is loaded after a .vim file if they only differ in extension.
|
||||||
|
-- All files in after/ftplugin/ are loaded after all files in ftplugin/.
|
||||||
|
write_file(table.concat({ftplugin_folder, 'new-ft.vim'}, sep), [[let g:seq ..= 'A']])
|
||||||
|
write_file(table.concat({ftplugin_folder, 'new-ft.lua'}, sep), [[vim.g.seq = vim.g.seq .. 'B']])
|
||||||
|
write_file(table.concat({ftplugin_folder, 'new-ft_a.vim'}, sep), [[let g:seq ..= 'C']])
|
||||||
|
write_file(table.concat({ftplugin_folder, 'new-ft_a.lua'}, sep), [[vim.g.seq = vim.g.seq .. 'D']])
|
||||||
|
write_file(table.concat({ftplugin_folder, 'new-ft', 'a.vim'}, sep), [[let g:seq ..= 'E']])
|
||||||
|
write_file(table.concat({ftplugin_folder, 'new-ft', 'a.lua'}, sep), [[vim.g.seq = vim.g.seq .. 'F']])
|
||||||
|
write_file(table.concat({after_ftplugin_folder, 'new-ft.vim'}, sep), [[let g:seq ..= 'a']])
|
||||||
|
write_file(table.concat({after_ftplugin_folder, 'new-ft.lua'}, sep), [[vim.g.seq = vim.g.seq .. 'b']])
|
||||||
|
write_file(table.concat({after_ftplugin_folder, 'new-ft_a.vim'}, sep), [[let g:seq ..= 'c']])
|
||||||
|
write_file(table.concat({after_ftplugin_folder, 'new-ft_a.lua'}, sep), [[vim.g.seq = vim.g.seq .. 'd']])
|
||||||
|
write_file(table.concat({after_ftplugin_folder, 'new-ft', 'a.vim'}, sep), [[let g:seq ..= 'e']])
|
||||||
|
write_file(table.concat({after_ftplugin_folder, 'new-ft', 'a.lua'}, sep), [[vim.g.seq = vim.g.seq .. 'f']])
|
||||||
|
exec('setfiletype new-ft')
|
||||||
|
eq('ABCDEFabcdef', eval('g:seq'))
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('indent', function()
|
describe('indent', function()
|
||||||
|
Reference in New Issue
Block a user