From c96f93d894cc97e76b0871bec4058530eee8ece4 Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Thu, 14 Nov 2024 19:18:21 -0800 Subject: [PATCH] perf: optimize rendering cadence --- lua/oil/view.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lua/oil/view.lua b/lua/oil/view.lua index cd39a52..3200c49 100644 --- a/lua/oil/view.lua +++ b/lua/oil/view.lua @@ -849,6 +849,7 @@ M.render_buffer_async = function(bufnr, opts, callback) end cache.begin_update_url(bufname) + local num_iterations = 0 adapter.list(bufname, get_used_columns(), function(err, entries, fetch_more) loading.set_loading(bufnr, false) if err then @@ -865,11 +866,13 @@ M.render_buffer_async = function(bufnr, opts, callback) local now = uv.hrtime() / 1e6 local delta = now - start_ms -- If we've been chugging for more than 40ms, go ahead and render what we have - if delta > 40 then + if (delta > 25 and num_iterations < 1) or delta > 500 then + num_iterations = num_iterations + 1 start_ms = now vim.schedule(function() seek_after_render_found = render_buffer(bufnr, { jump = not seek_after_render_found, jump_first = first }) + start_ms = uv.hrtime() / 1e6 end) end first = false