From c6a39a69b2df7c10466f150dde0bd23e49c1fba3 Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Fri, 3 Jan 2025 11:49:20 -0800 Subject: [PATCH] fix: stat files if fs_readdir doesn't provide a type (#543) --- lua/oil/adapters/files.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lua/oil/adapters/files.lua b/lua/oil/adapters/files.lua index 4f757ce..e89e8ef 100644 --- a/lua/oil/adapters/files.lua +++ b/lua/oil/adapters/files.lua @@ -301,6 +301,12 @@ local function fetch_entry_metadata(parent_dir, entry, require_stat, cb) entry[FIELD_META] = meta end + -- Sometimes fs_readdir entries don't have a type, so we need to stat them. + -- See https://github.com/stevearc/oil.nvim/issues/543 + if not require_stat and not entry[FIELD_TYPE] then + require_stat = true + end + -- Make sure we always get fs_stat info for links if entry[FIELD_TYPE] == "link" then read_link_data(entry_path, function(link_err, link, link_stat) @@ -332,6 +338,7 @@ local function fetch_entry_metadata(parent_dir, entry, require_stat, cb) return cb(stat_err) end assert(stat) + entry[FIELD_TYPE] = stat.type meta.stat = stat cb() end)