This commit is contained in:
jordanyono 2026-03-27 12:20:25 -04:00
parent afdb4a3ae4
commit ffa39ac7e4
1 changed files with 21 additions and 4 deletions

View File

@ -344,6 +344,17 @@ require('lazy').setup({
vim.keymap.set(mode, l, r, opts) vim.keymap.set(mode, l, r, opts)
end end
-- Detect branch once per buffer attach
local primary_branch = 'main'
local handle = io.popen 'git branch --list main master'
if handle then
local result = handle:read '*a'
handle:close()
if not string.find(result, 'main') and string.find(result, 'master') then
primary_branch = 'master'
end
end
-- Navigation -- Navigation
map('n', ']c', function() map('n', ']c', function()
if vim.wo.diff then if vim.wo.diff then
@ -362,14 +373,13 @@ require('lazy').setup({
end, { desc = 'Jump to previous git [c]hange' }) end, { desc = 'Jump to previous git [c]hange' })
-- Actions -- Actions
-- visual mode
map('v', '<leader>hs', function() map('v', '<leader>hs', function()
gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'git [s]tage hunk' }) end, { desc = 'git [s]tage hunk' })
map('v', '<leader>hr', function() map('v', '<leader>hr', function()
gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'git [r]eset hunk' }) end, { desc = 'git [r]eset hunk' })
-- normal mode
map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' }) map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' }) map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' }) map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
@ -378,13 +388,20 @@ require('lazy').setup({
map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' }) map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' }) map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
map('n', '<leader>hB', gitsigns.blame, { desc = 'git [B]lame toggle' }) map('n', '<leader>hB', gitsigns.blame, { desc = 'git [B]lame toggle' })
-- Diff Mappings
map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' }) map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
map('n', '<leader>hD', function() map('n', '<leader>hD', function()
gitsigns.diffthis '@' gitsigns.diffthis '@'
end, { desc = 'git [D]iff against last commit' }) end, { desc = 'git [D]iff against last commit' })
map('n', '<leader>hm', function()
gitsigns.diffthis(primary_branch)
end, { desc = 'git diff against [m]ain/master' })
-- Toggles -- Toggles
map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' }) map('n', '<leader>ht', gitsigns.toggle_current_line_blame, { desc = '[t]oggle git show blame line' })
map('n', '<leader>tD', gitsigns.preview_hunk_inline, { desc = '[T]oggle git show [D]eleted' }) map('n', '<leader>hv', gitsigns.preview_hunk_inline, { desc = 'toggle git show deleted ([v]iew)' })
end, end,
}, },
}, },