add gitsigns

This commit is contained in:
Zoty 2026-04-07 13:58:26 -03:00
parent 09aa20cf59
commit 8f05b02766
Signed by: Zoty
SSH key fingerprint: SHA256:WsGEGivgl37t3Mth6uugXMOgMCTR7QolIepNbC+j/tA
2 changed files with 65 additions and 0 deletions

64
lua/plugins/gitsigns.lua Normal file
View file

@ -0,0 +1,64 @@
return {
'lewis6991/gitsigns.nvim',
event = 'BufReadPre',
---@module 'gitsigns'
---@type GitSigns.Config
opts = {
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signs_staged = {
add = { text = '' },
change = { text = '' },
delete = { text = '' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
signs_staged_enable = true,
current_line_blame = false,
on_attach = function(bufnr)
local gs = require('gitsigns')
local function map(mode, lhs, rhs, desc)
vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc })
end
map('n', ']h', function()
if vim.wo.diff then
vim.cmd.normal({ ']c', bang = true })
else
gs.nav_hunk('next')
end
end, 'Next hunk')
map('n', '[h', function()
if vim.wo.diff then
vim.cmd.normal({ '[c', bang = true })
else
gs.nav_hunk('prev')
end
end, 'Prev hunk')
map('n', '<leader>hs', function()
gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end, 'Stage hunk (selection)')
map('v', '<leader>hr', function()
gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end, 'Reset hunk (selection)')
map('n', '<leader>hp', gs.preview_hunk, 'Preview hunk')
map('n', '<leader>hd', gs.diffthis, 'Diff this')
map('n', '<leader>hD', function() gs.diffthis('~') end, 'Diff this (last commit)')
map('n', '<leader>gb', gs.toggle_current_line_blame, 'Toggle line blame')
map('n', '<leader>gB', gs.blame, 'Blame buffer')
end
},
}