diff options
Diffstat (limited to 'runtime/lua/vim/fs.lua')
-rw-r--r-- | runtime/lua/vim/fs.lua | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/runtime/lua/vim/fs.lua b/runtime/lua/vim/fs.lua index 2c3fc64d57..c6371e9163 100644 --- a/runtime/lua/vim/fs.lua +++ b/runtime/lua/vim/fs.lua @@ -77,6 +77,8 @@ local function join_paths(...) return (table.concat({ ... }, '/'):gsub('//+', '/')) end +---@alias Iterator fun(): string?, string? + --- Return an iterator over the files and directories located in {path} --- ---@param path (string) An absolute or relative path to the directory to iterate @@ -100,10 +102,13 @@ function M.dir(path, opts) }) if not opts.depth or opts.depth == 1 then - return function(fs) + local fs = vim.loop.fs_scandir(M.normalize(path)) + return function() + if not fs then + return + end return vim.loop.fs_scandir_next(fs) - end, - vim.loop.fs_scandir(M.normalize(path)) + end end --- @async |