aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2020-02-07 10:41:02 +0100
committerGitHub <noreply@github.com>2020-02-07 10:41:02 +0100
commit120a4c8e253a9c7f4fcd25351d4cb12ca99b4f3e (patch)
tree26311a11f79d7c67f7590ace4009bb730752974c /src/nvim/api/vim.c
parent017b25101a3bb428d96ee956cbe32c4fe6dcc00d (diff)
parentef2e6522c53d562928060a4872020fb8f32c8ff8 (diff)
downloadrneovim-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.c34
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