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