From c8ba63ed19dc1e4ce3db309e887971ac69715ebf Mon Sep 17 00:00:00 2001 From: Noah Pederson Date: Mon, 21 Sep 2026 14:57:21 -0500 Subject: [PATCH] Redraw instead of prompting for reload --- lua/brokencode/ui.lua | 1 + tests/ui_spec.lua | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/lua/brokencode/ui.lua b/lua/brokencode/ui.lua index 4227616..b53bad6 100644 --- a/lua/brokencode/ui.lua +++ b/lua/brokencode/ui.lua @@ -97,6 +97,7 @@ function M.render(messages, session_id) vim.api.nvim_buf_set_lines(M.chat_buf, 0, -1, false, message_lines(M.messages, running)) vim.bo[M.chat_buf].modifiable = false vim.api.nvim_win_set_cursor(M.chat_win, { vim.api.nvim_buf_line_count(M.chat_buf), 0 }) + vim.cmd("redraw") end function M.set_running(session_id, running) diff --git a/tests/ui_spec.lua b/tests/ui_spec.lua index 8ca7698..4d3991e 100644 --- a/tests/ui_spec.lua +++ b/tests/ui_spec.lua @@ -13,6 +13,19 @@ local lines = vim.api.nvim_buf_get_lines(ui.chat_buf, 0, -1, false) assert(vim.tbl_contains(lines, "first line"), vim.inspect(lines)) assert(vim.tbl_contains(lines, "second line"), vim.inspect(lines)) +local redraws = 0 +local cmd = vim.cmd +vim.cmd = function(command) + if command == "redraw" then + redraws = redraws + 1 + return + end + cmd(command) +end +ui.render({ { type = "user", text = "redrawn" } }) +vim.cmd = cmd +assert(redraws == 1, "render did not redraw the chat window") + local replacement = vim.api.nvim_create_buf(false, true) vim.api.nvim_win_set_buf(ui.chat_win, replacement) ui.render({ { type = "user", text = "restored" } }) -- 2.51.2