From a1007597ca28f5a0c5e40cdcff5ab7d5ff61d03f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 15:23:51 +0200 Subject: [PATCH] [Backport release-0.9] fix(ftplugin): source Lua files after Vimscript files per directory (#23805) fix(ftplugin): source Lua files after Vimscript files per directory Problem: Lua ftplugins in runtime take precedence over Vimscript ftplugins in user configs (even in `after/`). Solution: Source ftplugins separately per directory, first Vimscript then Lua. (cherry picked from commit d2e43869919a9ed9721683480e16716f93508156) Co-authored-by: Christian Clason --- runtime/ftplugin.vim | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/runtime/ftplugin.vim b/runtime/ftplugin.vim index feef949dba..d24c0a036e 100644 --- a/runtime/ftplugin.vim +++ b/runtime/ftplugin.vim @@ -28,9 +28,11 @@ augroup filetypeplugin " When there is a dot it is used to separate filetype names. Thus for " "aaa.bbb" load "aaa" and then "bbb". for name in split(s, '\.') - exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim' - " Load lua ftplugins - exe printf('runtime! ftplugin/%s.lua ftplugin/%s_*.lua ftplugin/%s/*.lua', name, name, name) + " Load Lua ftplugins after Vim ftplugins _per directory_ + " 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', name, name) + exe printf('runtime! ftplugin/%s/*.vim ftplugin/%s/*.lua', name, name) endfor endif endfunc