fix(ftplugin): source inherited Lua ftplugins

Problem:
Vimscript ftplugins that inherit a base ftplugin often use explicit
`runtime! ftplugin/foo.vim` patterns. This skips corresponding Lua
ftplugins, unlike top-level ftplugin loading.

Solution:
Use the existing `{vim,lua}` patterns for bang runtime imports while
preserving each call's current lookup breadth.
This commit is contained in:
Barrett Ruth
2026-07-13 14:36:36 -05:00
committed by Christian Clason
parent fd02e91319
commit 0bb2f5cc08
60 changed files with 79 additions and 67 deletions

View File

@@ -235,6 +235,18 @@ describe('runtime:', function()
exec('setfiletype new-ft')
eq('ABCDEFabcdef', eval('g:seq'))
end)
it('inherited Vimscript ftplugins load bundled Lua ftplugins', function()
exec('setfiletype objc')
eq(1, eval([[b:undo_ftplugin =~# 'path<']]))
end)
it('inherited Vimscript ftplugins load user Lua ftplugins', function()
mkdir_p(ftplugin_folder)
write_file(('%s/mail.lua'):format(ftplugin_folder), [[vim.b.mail_lua = 1]])
exec('setfiletype gitsendemail')
eq(1, eval([[get(b:, 'mail_lua', 0)]]))
end)
end)
describe('indent', function()