This commit is contained in:
Jaroslaw Konik 2025-04-11 18:35:52 +02:00
parent 74d86327e5
commit 7164843855

View file

@ -194,6 +194,7 @@ require("lazy").setup({
on_attach = function(bufnr)
local gitsigns = require('gitsigns')
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
@ -208,7 +209,6 @@ require("lazy").setup({
gitsigns.nav_hunk('next')
end
end)
map('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal({ '[c', bang = true })
@ -218,22 +218,86 @@ require("lazy").setup({
end)
-- Actions
map('n', '<leader>hs', gitsigns.stage_hunk)
local wk = require("which-key")
map('n', '<leader>hr', gitsigns.reset_hunk)
map('v', '<leader>hs',
function() gitsigns.stage_hunk { vim.fn.line('.'), vim.fn.line('v') } end)
map('v', '<leader>hr',
function() gitsigns.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end)
map('n', '<leader>hS', gitsigns.stage_buffer)
map('n', '<leader>hu', gitsigns.undo_stage_hunk)
map('n', '<leader>hR', gitsigns.reset_buffer)
map('n', '<leader>hp', gitsigns.preview_hunk)
map('n', '<leader>hb', function() gitsigns.blame_line { full = true } end)
map('n', '<leader>tb', gitsigns.toggle_current_line_blame)
map('n', '<leader>hd', gitsigns.diffthis)
map('n', '<leader>hD', function() gitsigns.diffthis('~') end)
map('n', '<leader>td', gitsigns.toggle_deleted)
wk.add({
{
'<leader>h',
group = "hunks",
mode = "n",
{
{ '<leader>hs', gitsigns.stage_hunk, desc = "Stage Hunk" },
{ '<leader>hr', gitsigns.reset_hunk, desc = "Reset Hunk" },
{
'<leader>hS',
gitsigns.stage_buffer,
desc = "Stage Buffer"
},
{
'<leader>hu',
gitsigns.undo_stage_hunk,
desc = "Undo Stage Hunk"
},
{
'<leader>hR',
gitsigns.reset_buffer,
desc = "Reset Buffer"
},
{
'<leader>hp',
gitsigns.preview_hunk,
desc = "Preview Hunk"
},
{
'<leader>hb',
function() gitsigns.blame_line { full = true } end,
desc = "Blame line"
},
{
'<leader>tb',
gitsigns.toggle_current_line_blame,
desc = "Toggle current line blame"
},
{
'<leader>hd',
gitsigns.diffthis,
desc = "Diff this"
},
{
'<leader>hD',
function() gitsigns.diffthis('~') end,
desc = "Diff this ~"
},
{
'<leader>ht',
gitsigns.toggle_deleted,
desc = "Toggle deleted"
},
},
},
{
'<leader>h',
group = "vhunks",
mode = "v",
{
'<leader>hs',
function()
gitsigns.stage_hunk { vim.fn.line('.'),
vim.fn.line('v') }
end,
desc = "Stage Hunk",
},
{
'<leader>hr',
function()
gitsigns.reset_hunk { vim.fn.line('.'),
vim.fn.line('v') }
end,
desc = "Reset Hunk",
},
}
})
-- Text object
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')