From c0d7de2896a8cbbbc9308c234ddb62af38be0227 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Wed, 15 Nov 2023 11:11:17 -0800 Subject: [PATCH] feat: clean up gitsigns keymaps --- lua/cosmic/plugins/gitsigns/init.lua | 41 +++++++++++++++++----------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/lua/cosmic/plugins/gitsigns/init.lua b/lua/cosmic/plugins/gitsigns/init.lua index ab474f0..50c279e 100644 --- a/lua/cosmic/plugins/gitsigns/init.lua +++ b/lua/cosmic/plugins/gitsigns/init.lua @@ -6,7 +6,8 @@ return { dependencies = { 'nvim-lua/plenary.nvim' }, event = 'VeryLazy', config = function() - require('gitsigns').setup(u.merge({ + local gs = require('gitsigns') + gs.setup(u.merge({ signs = { add = { hl = 'GitSignsAdd', text = '│', numhl = 'GitSignsAddNr', linehl = 'GitSignsAddLn' }, change = { hl = 'GitSignsChange', text = '│', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' }, @@ -23,7 +24,6 @@ return { col = 1, }, on_attach = function(bufnr) - local gs = package.loaded.gitsigns local map = u.create_buf_map(bufnr) -- Navigation map('n', ']c', function() @@ -53,26 +53,35 @@ return { }) -- Actions - map({ 'n', 'v' }, 'vs', ':Gitsigns stage_hunk', { desc = 'Stage hunk' }) - map({ 'n', 'v' }, 'vr', ':Gitsigns reset_hunk', { desc = 'Reset hunk' }) - map('n', 'vS', gs.stage_buffer, { desc = 'Stage buffer' }) - map('n', 'vu', gs.undo_stage_hunk, { desc = 'Under stage hunk' }) - map('n', 'vR', gs.reset_buffer, { desc = 'Reset buffer' }) - map('n', 'vp', gs.preview_hunk, { desc = 'Preview hunk' }) - map('n', 'vb', function() + map('n', 'hs', gs.stage_hunk, { desc = 'Stage hunk' }) + map('n', 'hr', gs.reset_hunk, { desc = 'Reset hunk' }) + map('v', 'hs', function() + gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end, { + desc = 'Stage hunk selection', + }) + map('v', 'hr', function() + gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end, { + desc = 'Reset hunk selection', + }) + map('n', 'hS', gs.stage_buffer, { desc = 'Stage buffer' }) + map('n', 'hu', gs.undo_stage_hunk, { desc = 'Undo stage hunk' }) + map('n', 'hR', gs.reset_buffer, { desc = 'Reset buffer' }) + map('n', 'hp', gs.preview_hunk, { desc = 'Preview hunk' }) + map('n', 'hb', function() gs.blame_line({ full = true }) end, { - desc = 'Blame line preview', + desc = 'Blame line', }) - map('n', 'vd', gs.diffthis, { desc = 'Diff line' }) - map('n', 'vD', function() + map('n', 'htb', gs.toggle_current_line_blame, { desc = 'Toggle blame current line' }) + map('n', 'hd', gs.diffthis, { desc = 'Diff buffer' }) + map('n', 'hD', function() gs.diffthis('~') end, { desc = 'Diff project' }) + map('n', 'td', gs.toggle_deleted, { desc = 'Toggle delete' }) - map('n', 'vtb', gs.toggle_current_line_blame, { desc = 'Toggle blame (virtual text)' }) - map('n', 'vtd', gs.toggle_deleted, { desc = 'Toggle deleted' }) - - -- Text object + --[[ -- Text object ]] map({ 'o', 'x' }, 'ih', ':Gitsigns select_hunk', { desc = 'Select hunk' }) end, }, user_config.plugins.gitsigns or {}))