fix: fs and refresh bugs

- refreshing delete from entries before adding new entries to avoid
  conflicts with indexes
- delete is synchronous because on large folders it was not recursing
  properly thus causing errors and not deleting content.
This commit is contained in:
kyazdani42
2020-06-05 09:33:14 +02:00
parent f6b38bb364
commit d0d42d42a3
2 changed files with 43 additions and 56 deletions

View File

@@ -104,6 +104,15 @@ function M.refresh_entries(entries, cwd)
::continue::
end
local idx = 1
for _, name in ipairs(cached_entries) do
if not new_entries[name] then
table.remove(entries, idx, idx + 1)
else
idx = idx + 1
end
end
local all = {
{ entries = dirs, fn = dir_new },
{ entries = links, fn = link_new },
@@ -127,15 +136,6 @@ function M.refresh_entries(entries, cwd)
prev = name
end
end
local idx = 1
for _, name in ipairs(cached_entries) do
if not new_entries[name] then
table.remove(entries, idx, idx + 1)
else
idx = idx + 1
end
end
end
function M.populate(entries, cwd)