diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-02-07 10:41:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-07 10:41:02 +0100 |
commit | 120a4c8e253a9c7f4fcd25351d4cb12ca99b4f3e (patch) | |
tree | 26311a11f79d7c67f7590ace4009bb730752974c /src/nvim/api/vim.c | |
parent | 017b25101a3bb428d96ee956cbe32c4fe6dcc00d (diff) | |
parent | ef2e6522c53d562928060a4872020fb8f32c8ff8 (diff) | |
download | rneovim-120a4c8e253a9c7f4fcd25351d4cb12ca99b4f3e.tar.gz rneovim-120a4c8e253a9c7f4fcd25351d4cb12ca99b4f3e.tar.bz2 rneovim-120a4c8e253a9c7f4fcd25351d4cb12ca99b4f3e.zip |
Merge pull request #11757 from bfredl/treesitter_runtime
treesitter: add standard search path for parsers + bundle c parser properly
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r-- | src/nvim/api/vim.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 9c58ce853b..30fc48fea5 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -703,6 +703,40 @@ ArrayOf(String) nvim_list_runtime_paths(void) return rv; } +/// Find files in runtime directories +/// +/// 'name' can contain wildcards. For example +/// nvim_get_runtime_file("colors/*.vim", true) will return all color +/// scheme files. +/// +/// It is not an error to not find any files. An empty array is returned then. +/// +/// @param name pattern of files to search for +/// @param all whether to return all matches or only the first +/// @return list of absolute paths to the found files +ArrayOf(String) nvim_get_runtime_file(String name, Boolean all) + FUNC_API_SINCE(7) +{ + Array rv = ARRAY_DICT_INIT; + if (!name.data) { + return rv; + } + int flags = DIP_START | (all ? DIP_ALL : 0); + do_in_runtimepath((char_u *)name.data, flags, find_runtime_cb, &rv); + return rv; +} + +static void find_runtime_cb(char_u *fname, void *cookie) +{ + Array *rv = (Array *)cookie; + ADD(*rv, STRING_OBJ(cstr_to_string((char *)fname))); +} + +String nvim__get_lib_dir(void) +{ + return cstr_as_string(get_lib_dir()); +} + /// Changes the global working directory. /// /// @param dir Directory path |