diff --git a/lua/opencode/provider/terminal.lua b/lua/opencode/provider/terminal.lua index 240a54b..dab7acd 100644 --- a/lua/opencode/provider/terminal.lua +++ b/lua/opencode/provider/terminal.lua @@ -48,7 +48,21 @@ function Terminal:start() self.bufnr = vim.api.nvim_create_buf(true, false) self.winid = vim.api.nvim_open_win(self.bufnr, true, self.opts) - -- FIX: There's a few empty columns on the right side of the terminal until it's redrawn, at least for me. + + -- Redraw terminal buffer on initial render. + -- Fixes empty columns on the right side. + local auid + auid = vim.api.nvim_create_autocmd("TermRequest", { + buffer = self.bufnr, + callback = function(ev) + if ev.data.cursor[1] > 1 then + vim.api.nvim_del_autocmd(auid) + vim.api.nvim_set_current_win(self.winid) + vim.cmd([[startinsert | call feedkeys("\\\p", "n")]]) + end + end, + }) + vim.fn.jobstart(self.cmd, { term = true, on_exit = function()