diff options
| author | Mathias Fußenegger <mfussenegger@users.noreply.github.com> | 2022-09-13 22:16:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-13 14:16:20 -0600 |
| commit | a8c9e721d91efe4730db78c1115261fc128dca68 (patch) | |
| tree | 9a026a2e55bfc325674fec25ef4e9e2c3048a589 /runtime/doc | |
| parent | 1970d2ac43059639e4e2c83223d86397b38786ff (diff) | |
| download | rneovim-a8c9e721d91efe4730db78c1115261fc128dca68.tar.gz rneovim-a8c9e721d91efe4730db78c1115261fc128dca68.tar.bz2 rneovim-a8c9e721d91efe4730db78c1115261fc128dca68.zip | |
feat(fs): extend fs.find to accept predicate (#20193)
Makes it possible to use `vim.fs.find` to find files where only a
substring is known.
This is useful for `vim.lsp.start` to get the `root_dir` for languages
where the project-file is only known by its extension, not by the full
name.
For example in .NET projects there is usually a `<projectname>.csproj`
file in the project root.
Example:
vim.fs.find(function(x) return vim.endswith(x, '.csproj') end, { upward = true })
Diffstat (limited to 'runtime/doc')
| -rw-r--r-- | runtime/doc/lua.txt | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index 35badb13b1..e5bfd9e4c6 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -2323,8 +2323,10 @@ find({names}, {opts}) *vim.fs.find()* specifying {type} to be "file" or "directory", respectively. Parameters: ~ - {names} (string|table) Names of the files and directories to find. - Must be base names, paths and globs are not supported. + {names} (string|table|fun(name: string): boolean) Names of the files + and directories to find. Must be base names, paths and globs + are not supported. If a function it is called per file and + dir within the traversed directories to test if they match. {opts} (table) Optional keyword arguments: • path (string): Path to begin searching from. If omitted, the current working directory is used. |