From 1035a9fb5df1ed7c5cab99fa4c0686c2c9ef0e37 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 1 Jul 2026 12:32:15 +0200 Subject: [PATCH] refactor(dir): use vim.fs.dir() --- runtime/lua/nvim/dir.lua | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/runtime/lua/nvim/dir.lua b/runtime/lua/nvim/dir.lua index bd00b95cbe..cdc8713c77 100644 --- a/runtime/lua/nvim/dir.lua +++ b/runtime/lua/nvim/dir.lua @@ -3,7 +3,6 @@ local api = vim.api local fs = vim.fs -local uv = vim.uv local M = {} @@ -50,17 +49,13 @@ end ---@param dir string ---@return boolean local function render(buf, dir) - -- TODO(#39878): drop this scandir probe once vim.fs.dir() can report - -- traversal errors. - local handle, err = uv.fs_scandir(dir) - if not handle then - vim.notify('dir: ' .. (err or ('cannot read directory: ' .. dir)), vim.log.levels.ERROR) - return false - end - ---@type { name: string, dir: boolean }[] local items = {} - for name, type in fs.dir(dir) do + for name, type, err in fs.dir(dir, { err = true }) do + if err then + vim.notify('dir: ' .. err, vim.log.levels.ERROR) + return false + end if type == 'link' and vim.fn.isdirectory(fs.joinpath(dir, name)) == 1 then type = 'directory' end