From f9e86a4dac5a0d4428b94cf29f0be1ef2e56fa22 Mon Sep 17 00:00:00 2001 From: Joao P Dubas Date: Sun, 3 Mar 2024 23:25:15 +0000 Subject: [PATCH] fix(nvim): set gitsigns mappings in opts table --- patch/kickstart.nvim/updates.patch | 126 ++++++++++++++--------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/patch/kickstart.nvim/updates.patch b/patch/kickstart.nvim/updates.patch index 312c2aa..1f5dfc0 100644 --- a/patch/kickstart.nvim/updates.patch +++ b/patch/kickstart.nvim/updates.patch @@ -1,5 +1,5 @@ diff --git a/init.lua b/init.lua -index 292ec07..19075db 100644 +index 292ec07..284e1dc 100644 --- a/init.lua +++ b/init.lua @@ -101,8 +101,12 @@ vim.opt.number = true @@ -31,73 +31,73 @@ index 292ec07..19075db 100644 -- [[ Basic Keymaps ]] -- See `:help vim.keymap.set()` -@@ -250,6 +262,66 @@ require('lazy').setup { +@@ -249,6 +261,66 @@ require('lazy').setup { + topdelete = { text = '‾' }, changedelete = { text = '~' }, }, ++ on_attach = function(bufnr) ++ local gs = package.loaded.gitsigns ++ ++ local function map(mode, l, r, opts) ++ opts = opts or {} ++ opts.buffer = bufnr ++ vim.keymap.set(mode, l, r, opts) ++ end ++ ++ -- Navigation ++ map({ 'n', 'v' }, ']c', function() ++ if vim.wo.diff then ++ return ']c' ++ end ++ vim.schedule(function() ++ gs.next_hunk() ++ end) ++ return '' ++ end, { expr = true, desc = 'Jump to next hunk' }) ++ ++ map({ 'n', 'v' }, '[c', function() ++ if vim.wo.diff then ++ return '[c' ++ end ++ vim.schedule(function() ++ gs.prev_hunk() ++ end) ++ return '' ++ end, { expr = true, desc = 'Jump to previous hunk' }) ++ ++ -- Actions ++ -- visual mode ++ map('v', 'hs', function() ++ gs.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } ++ end, { desc = 'stage git hunk' }) ++ map('v', 'hr', function() ++ gs.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } ++ end, { desc = 'reset git hunk' }) ++ -- normal mode ++ map('n', 'hs', gs.stage_hunk, { desc = 'git stage hunk' }) ++ map('n', 'hr', gs.reset_hunk, { desc = 'git reset hunk' }) ++ map('n', 'hS', gs.stage_buffer, { desc = 'git Stage buffer' }) ++ map('n', 'hu', gs.undo_stage_hunk, { desc = 'undo stage hunk' }) ++ map('n', 'hR', gs.reset_buffer, { desc = 'git Reset buffer' }) ++ map('n', 'hp', gs.preview_hunk, { desc = 'preview git hunk' }) ++ map('n', 'hb', function() ++ gs.blame_line { full = false } ++ end, { desc = 'git blame line' }) ++ map('n', 'hd', gs.diffthis, { desc = 'git diff against index' }) ++ map('n', 'hD', function() ++ gs.diffthis '~' ++ end, { desc = 'git diff against last commit' }) ++ ++ -- Toggles ++ map('n', 'tb', gs.toggle_current_line_blame, { desc = 'toggle git blame line' }) ++ map('n', 'td', gs.toggle_deleted, { desc = 'toggle git show deleted' }) ++ ++ -- Text object ++ map({ 'o', 'x' }, 'ih', ':Gitsigns select_hunk', { desc = 'select git hunk' }) ++ end, }, -+ on_attach = function(bufnr) -+ local gs = package.loaded.gitsigns -+ -+ local function map(mode, l, r, opts) -+ opts = opts or {} -+ opts.buffer = bufnr -+ vim.keymap.set(mode, l, r, opts) -+ end -+ -+ -- Navigation -+ map({ 'n', 'v' }, ']c', function() -+ if vim.wo.diff then -+ return ']c' -+ end -+ vim.schedule(function() -+ gs.next_hunk() -+ end) -+ return '' -+ end, { expr = true, desc = 'Jump to next hunk' }) -+ -+ map({ 'n', 'v' }, '[c', function() -+ if vim.wo.diff then -+ return '[c' -+ end -+ vim.schedule(function() -+ gs.prev_hunk() -+ end) -+ return '' -+ end, { expr = true, desc = 'Jump to previous hunk' }) -+ -+ -- Actions -+ -- visual mode -+ map('v', 'hs', function() -+ gs.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } -+ end, { desc = 'stage git hunk' }) -+ map('v', 'hr', function() -+ gs.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } -+ end, { desc = 'reset git hunk' }) -+ -- normal mode -+ map('n', 'hs', gs.stage_hunk, { desc = 'git stage hunk' }) -+ map('n', 'hr', gs.reset_hunk, { desc = 'git reset hunk' }) -+ map('n', 'hS', gs.stage_buffer, { desc = 'git Stage buffer' }) -+ map('n', 'hu', gs.undo_stage_hunk, { desc = 'undo stage hunk' }) -+ map('n', 'hR', gs.reset_buffer, { desc = 'git Reset buffer' }) -+ map('n', 'hp', gs.preview_hunk, { desc = 'preview git hunk' }) -+ map('n', 'hb', function() -+ gs.blame_line { full = false } -+ end, { desc = 'git blame line' }) -+ map('n', 'hd', gs.diffthis, { desc = 'git diff against index' }) -+ map('n', 'hD', function() -+ gs.diffthis '~' -+ end, { desc = 'git diff against last commit' }) -+ -+ -- Toggles -+ map('n', 'tb', gs.toggle_current_line_blame, { desc = 'toggle git blame line' }) -+ map('n', 'td', gs.toggle_deleted, { desc = 'toggle git show deleted' }) -+ -+ -- Text object -+ map({ 'o', 'x' }, 'ih', ':Gitsigns select_hunk', { desc = 'select git hunk' }) -+ end, }, - -- NOTE: Plugins can also be configured to run lua code when they are loaded. @@ -544,6 +616,18 @@ require('lazy').setup { -- tsserver = {}, --