Improve hunk navigation with auto-centering behavior

Added a delay to center the cursor after moving to the next or
previous hunk, enhancing the navigation experience.
This commit is contained in:
Ray Elliott 2026-01-18 13:11:40 +00:00
parent b9ddeee54e
commit ee01977e76
1 changed files with 16 additions and 5 deletions

View File

@ -25,16 +25,27 @@ return {
vim.keymap.set(mode, l, r, opts) vim.keymap.set(mode, l, r, opts)
end end
-- Hunk navigation -- Hunk navigation (includes zt to center after movement)
-- Note: gs.next_hunk/prev_hunk are async, so zt needs a delay to center after cursor moves
map('n', ']h', function() map('n', ']h', function()
if vim.wo.diff then return ']c' end if vim.wo.diff then return ']czt' end
vim.schedule(function() gs.next_hunk() end) vim.schedule(function()
gs.next_hunk()
end)
vim.defer_fn(function()
vim.cmd('normal! zt')
end, 50)
return '<Ignore>' return '<Ignore>'
end, { expr = true, desc = 'Gitsigns: Next hunk' }) end, { expr = true, desc = 'Gitsigns: Next hunk' })
map('n', '[h', function() map('n', '[h', function()
if vim.wo.diff then return '[c' end if vim.wo.diff then return '[czt' end
vim.schedule(function() gs.prev_hunk() end) vim.schedule(function()
gs.prev_hunk()
end)
vim.defer_fn(function()
vim.cmd('normal! zt')
end, 50)
return '<Ignore>' return '<Ignore>'
end, { expr = true, desc = 'Gitsigns: Previous hunk' }) end, { expr = true, desc = 'Gitsigns: Previous hunk' })