fix(undotree): sync scroll pos with undo #36117

Problem: when undo in buffer, undotree window is not updated to
position of correct node

Solution: schedule nvim_win_set_cursor
This commit is contained in:
phanium
2025-10-10 22:07:01 +08:00
committed by GitHub
parent d8cea8d45d
commit 9c89212de1
2 changed files with 28 additions and 3 deletions

View File

@@ -264,9 +264,11 @@ local function draw(inbuf, outbuf)
local curseq_line = buf_apply_graph_lines(tree, graph_lines, outbuf, meta, curseq)
vim.bo[outbuf].modifiable = false
if vim.api.nvim_win_is_valid(vim.b[outbuf].nvim_is_undotree) then
vim.api.nvim_win_set_cursor(vim.b[outbuf].nvim_is_undotree, { curseq_line, 0 })
end
vim.schedule(function()
if vim.api.nvim_win_is_valid(vim.b[outbuf].nvim_is_undotree) then
vim.api.nvim_win_set_cursor(vim.b[outbuf].nvim_is_undotree, { curseq_line, 0 })
end
end)
return meta
end