diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2021-06-11 17:42:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-11 17:42:21 +0200 |
commit | 81a6b70880efa21dc45c6b222ca3c2d794c85b36 (patch) | |
tree | dbccb3560996a9ef3aac1ad176ada23dfe986cc2 /src/nvim/runtime.c | |
parent | fa768152dc5523ce7656a55253a626eea5180396 (diff) | |
parent | e1edc079dd0d0cb4a53e5998086568cf9d10a26a (diff) | |
download | rneovim-81a6b70880efa21dc45c6b222ca3c2d794c85b36.tar.gz rneovim-81a6b70880efa21dc45c6b222ca3c2d794c85b36.tar.bz2 rneovim-81a6b70880efa21dc45c6b222ca3c2d794c85b36.zip |
Merge pull request #14686 from shadmansaleh/feat/evaluate_plugin/lua
runtime: allow to use .lua files for most features defined as &rtp/{feature}/*.vim
Diffstat (limited to 'src/nvim/runtime.c')
-rw-r--r-- | src/nvim/runtime.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/nvim/runtime.c b/src/nvim/runtime.c index 1fb7e3b434..c3cd210538 100644 --- a/src/nvim/runtime.c +++ b/src/nvim/runtime.c @@ -245,7 +245,8 @@ int source_in_path(char_u *path, char_u *name, int flags) return do_in_path_and_pp(path, name, flags, source_callback, NULL); } -// Expand wildcards in "pat" and invoke do_source() for each match. +// Expand wildcards in "pat" and invoke do_source()/nlua_exec_file() +// for each match. static void source_all_matches(char_u *pat) { int num_files; @@ -405,17 +406,15 @@ theend: /// Load scripts in "plugin" and "ftdetect" directories of the package. static int load_pack_plugin(char_u *fname) { - static const char *plugpat = "%s/plugin/**/*.vim"; // NOLINT static const char *ftpat = "%s/ftdetect/*.vim"; // NOLINT - int retval = FAIL; char *const ffname = fix_fname((char *)fname); size_t len = strlen(ffname) + STRLEN(ftpat); - char_u *pat = try_malloc(len + 1); - if (pat == NULL) { - goto theend; - } - vim_snprintf((char *)pat, len, plugpat, ffname); + char_u *pat = xmallocz(len); + + vim_snprintf((char *)pat, len, "%s/plugin/**/*.vim", ffname); // NOLINT + source_all_matches(pat); + 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"); @@ -426,16 +425,15 @@ 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); xfree(pat); - retval = OK; - -theend: xfree(ffname); - return retval; + return OK; } // used for "cookie" of add_pack_plugin() |