diff --git a/lua/git/hunks.lua b/lua/git/hunks.lua index d52f5e2..4045b13 100644 --- a/lua/git/hunks.lua +++ b/lua/git/hunks.lua @@ -399,6 +399,11 @@ end local schedule, sched_handle = util.keyed_debounce(recompute, 100) +---@param buf integer +function M._flush(buf) + sched_handle.flush(buf) +end + ---@param buf integer function M.attach(buf) if states[buf] then diff --git a/test/git/hunks_test.lua b/test/git/hunks_test.lua index a15f6f7..9410a26 100644 --- a/test/git/hunks_test.lua +++ b/test/git/hunks_test.lua @@ -15,6 +15,7 @@ local function setup(committed, worktree, file) vim.cmd.edit(dir .. "/" .. file) local buf = vim.api.nvim_get_current_buf() hunks.attach(buf) + hunks._flush(buf) t.wait_for(function() local s = hunks.state(buf) return s ~= nil and s.index ~= nil @@ -135,6 +136,7 @@ t.test("editing the buffer refreshes signs", function() t.eq(#state.hunks, 0) vim.api.nvim_buf_set_lines(buf, 1, 2, false, { "CHANGED" }) vim.api.nvim_exec_autocmds("TextChanged", { buffer = buf }) + hunks._flush(buf) t.wait_for(function() local s = assert(hunks.state(buf)) return #s.hunks == 1