feat(runtime): Allow lua to be used in ftdetect

This commit is contained in:
shadmansaleh 2021-06-02 17:04:42 +06:00
parent 4dffe1ff2f
commit f256a18fef
3 changed files with 24 additions and 4 deletions

View File

@ -2303,6 +2303,7 @@ au BufNewFile,BufRead *.txt
" Use the filetype detect plugins. They may overrule any of the previously
" detected filetypes.
runtime! ftdetect/*.vim
runtime! ftdetect/*.lua
" NOTE: The above command could have ended the filetypedetect autocmd group
" and started another one. Let's make sure it has ended to get to a consistent

View File

@ -421,9 +421,9 @@ static int load_pack_plugin(char_u *fname)
size_t len = strlen(ffname) + STRLEN(ftpat);
char_u *pat = xmallocz(len);
vim_snprintf((char *)pat, len, "%s/plugin/**/*.vim", ffname);
vim_snprintf((char *)pat, len, "%s/plugin/**/*.vim", ffname); // NOLINT
source_all_matches(pat);
vim_snprintf((char *)pat, len, "%s/plugin/**/*.lua", ffname);
vim_snprintf((char *)pat, len, "%s/plugin/**/*.lua", ffname); // NOLINT
source_all_matches(pat);
char_u *cmd = vim_strsave((char_u *)"g:did_load_filetypes");
@ -434,6 +434,8 @@ static int load_pack_plugin(char_u *fname)
do_cmdline_cmd("augroup filetypedetect");
vim_snprintf((char *)pat, len, ftpat, ffname);
source_all_matches(pat);
vim_snprintf((char *)pat, len, "%s/ftdetect/*.lua", ffname); // NOLINT
source_all_matches(pat);
do_cmdline_cmd("augroup END");
}
xfree(cmd);

View File

@ -127,7 +127,7 @@ describe('runtime:', function()
it('loads lua ftplugins', function()
local ftplugin_file = table.concat({ftplugin_folder , 'new-ft.lua'}, pathsep)
mkdir_p(ftplugin_folder)
write_file(ftplugin_file , [[ vim.g.lua_ftplugin = 1 ]])
write_file(ftplugin_file , [[vim.g.lua_ftplugin = 1]])
clear{ args_rm={'-u' }, env={ XDG_CONFIG_HOME=xconfig, VIMRUNTIME='runtime/' }}
@ -145,7 +145,7 @@ describe('runtime:', function()
it('loads lua indents', function()
local indent_file = table.concat({indent_folder , 'new-ft.lua'}, pathsep)
mkdir_p(indent_folder)
write_file(indent_file , [[ vim.g.lua_indent = 1 ]])
write_file(indent_file , [[vim.g.lua_indent = 1]])
clear{ args_rm={'-u' }, env={ XDG_CONFIG_HOME=xconfig, VIMRUNTIME='runtime/' }}
@ -155,5 +155,22 @@ describe('runtime:', function()
end)
end)
describe('ftdetect', function()
local ftdetect_folder = table.concat({xconfig, 'nvim', 'ftdetect'}, pathsep)
before_each(clear)
it('loads lua ftdetects', function()
local ftdetect_file = table.concat({ftdetect_folder , 'new-ft.lua'}, pathsep)
mkdir_p(ftdetect_folder)
write_file(ftdetect_file , [[vim.g.lua_ftdetect = 1]])
clear{ args_rm={'-u' }, env={ XDG_CONFIG_HOME=xconfig, VIMRUNTIME='runtime/' }}
eq(1, eval('g:lua_ftdetect'))
rmdir(ftdetect_folder)
end)
end)
end)