46 lines
1.3 KiB
Lua
Executable File
46 lines
1.3 KiB
Lua
Executable File
return {
|
|
-- Lazy load gitsigns.nvim only if in a git repository
|
|
{
|
|
'lewis6991/gitsigns.nvim',
|
|
opts = {
|
|
-- Configuration options for gitsigns.nvim
|
|
signs = {
|
|
add = { text = '+' },
|
|
change = { text = '~' },
|
|
delete = { text = '_' },
|
|
topdelete = { text = '‾' },
|
|
changedelete = { text = '~' },
|
|
},
|
|
-- on_attach function executed when the plugin is attached to a buffer
|
|
on_attach = function(bufnr)
|
|
vim.keymap.set('n', '<leader>hp', require('gitsigns').preview_hunk, {
|
|
buffer = bufnr, desc = 'Preview git hunk'
|
|
})
|
|
|
|
-- Don't override built-in and fugitive keymaps
|
|
local gs = require('gitsigns')
|
|
vim.keymap.set({ 'n', 'v' }, ']c', function()
|
|
if vim.wo.diff then
|
|
return ']c'
|
|
end
|
|
vim.schedule(function()
|
|
gs.next_hunk()
|
|
end)
|
|
return '<Ignore>'
|
|
end, { expr = true, buffer = bufnr, desc = 'Jump to next hunk' })
|
|
|
|
vim.keymap.set({ 'n', 'v' }, '[c', function()
|
|
if vim.wo.diff then
|
|
return '[c'
|
|
end
|
|
vim.schedule(function()
|
|
gs.prev_hunk()
|
|
end)
|
|
return '<Ignore>'
|
|
end, { expr = true, buffer = bufnr, desc = 'Jump to previous hunk' })
|
|
end,
|
|
},
|
|
},
|
|
}
|
|
|