diff options
author | shadmansaleh <shadmansaleh3@gmail.com> | 2021-06-02 16:25:50 +0600 |
---|---|---|
committer | shadmansaleh <shadmansaleh3@gmail.com> | 2021-06-11 01:01:02 +0600 |
commit | fd5e5d2715d264447d94d7253f3c78bd7003a472 (patch) | |
tree | cd4cd78d99197de5e30d18c7a078d70ebc4575c1 | |
parent | 68be8b99cfb1ab6105c48707986ce409ca38dd35 (diff) | |
download | rneovim-fd5e5d2715d264447d94d7253f3c78bd7003a472.tar.gz rneovim-fd5e5d2715d264447d94d7253f3c78bd7003a472.tar.bz2 rneovim-fd5e5d2715d264447d94d7253f3c78bd7003a472.zip |
feat(runtime): Allow lua to be used in ftplugin
-rw-r--r-- | runtime/doc/usr_05.txt | 2 | ||||
-rw-r--r-- | runtime/ftplugin.vim | 4 | ||||
-rw-r--r-- | test/functional/lua/runtime_spec.lua | 21 |
3 files changed, 25 insertions, 2 deletions
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt index d8634ac6ed..d0206ba82d 100644 --- a/runtime/doc/usr_05.txt +++ b/runtime/doc/usr_05.txt @@ -411,7 +411,7 @@ Examples for the "stuff" filetype on Unix: > The <filetype> part is the name of the filetype the plugin is to be used for. Only files of this filetype will use the settings from the plugin. The <name> part of the plugin file doesn't matter, you can use it to have several plugins -for the same filetype. Note that it must end in ".vim". +for the same filetype. Note that it must end in ".vim" or ".lua". Further reading: diff --git a/runtime/ftplugin.vim b/runtime/ftplugin.vim index a434b9372b..feef949dba 100644 --- a/runtime/ftplugin.vim +++ b/runtime/ftplugin.vim @@ -28,7 +28,9 @@ 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' + 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) endfor endif endfunc diff --git a/test/functional/lua/runtime_spec.lua b/test/functional/lua/runtime_spec.lua index 11407ad19c..b55141f427 100644 --- a/test/functional/lua/runtime_spec.lua +++ b/test/functional/lua/runtime_spec.lua @@ -23,6 +23,7 @@ describe('runtime:', function() end) describe('plugin', function() + before_each(clear) it('loads plugin/*.lua from XDG config home', function() local plugin_folder_path = table.concat({xconfig, 'nvim', 'plugin'}, pathsep) local plugin_file_path = table.concat({plugin_folder_path, 'plugin.lua'}, pathsep) @@ -53,6 +54,7 @@ describe('runtime:', function() end) describe('colors', function() + before_each(clear) it('loads lua colorscheme', function() local colorscheme_folder = table.concat({xconfig, 'nvim', 'colors'}, pathsep) @@ -87,6 +89,7 @@ describe('runtime:', function() describe('compiler', function() local compiler_folder = table.concat({xconfig, 'nvim', 'compiler'}, pathsep) + before_each(clear) it('loads lua compilers', function() local compiler_file = table.concat({compiler_folder, 'new_compiler.lua'}, @@ -115,5 +118,23 @@ describe('runtime:', function() rmdir(compiler_folder) end) end) + + describe('ftplugin', function() + local ftplugin_folder = table.concat({xconfig, 'nvim', 'ftplugin'}, pathsep) + + before_each(clear) + + 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 ]]) + + clear{ args_rm={'-u' }, env={ XDG_CONFIG_HOME=xconfig, VIMRUNTIME='runtime/' }} + + exec [[set filetype=new-ft]] + eq(1, eval('g:lua_ftplugin')) + rmdir(ftplugin_folder) + end) + end) end) |