diff --git a/.config/nvim/plugin/gitsigns.lua b/.config/nvim/plugin/gitsigns.lua index 25a295dd..4fd5a39c 100644 --- a/.config/nvim/plugin/gitsigns.lua +++ b/.config/nvim/plugin/gitsigns.lua @@ -1,6 +1,6 @@ require("gitsigns").setup { on_attach = function(bufnr) - local gs = package.loaded.gitsigns + local gitsigns = package.loaded.gitsigns local function map(mode, l, r, opts) opts = opts or {} @@ -9,30 +9,43 @@ require("gitsigns").setup { end -- Navigation - map("n", "hj", gs.next_hunk) - map("n", "hk", gs.prev_hunk) + map('n', ']c', function() + if vim.wo.diff then + vim.cmd.normal({ ']c', bang = true }) + else + gitsigns.nav_hunk('next') + end + end) + + map('n', '[c', function() + if vim.wo.diff then + vim.cmd.normal({ '[c', bang = true }) + else + gitsigns.nav_hunk('prev') + end + end) -- Actions - map("n", "hs", gs.stage_hunk) - map("n", "hu", gs.undo_stage_hunk) - map("n", "hr", gs.reset_hunk) + map("n", "hs", gitsigns.stage_hunk) + map("n", "hu", gitsigns.undo_stage_hunk) + map("n", "hr", gitsigns.reset_hunk) - map("v", "hs", function() gs.stage_hunk { vim.fn.line("."), vim.fn.line("v") } end) - map("v", "hr", function() gs.reset_hunk { vim.fn.line("."), vim.fn.line("v") } end) + map("v", "hs", function() gitsigns.stage_hunk { vim.fn.line("."), vim.fn.line("v") } end) + map("v", "hr", function() gitsigns.reset_hunk { vim.fn.line("."), vim.fn.line("v") } end) - map("n", "hS", gs.stage_buffer) - map("n", "hR", gs.reset_buffer) + map("n", "hS", gitsigns.stage_buffer) + map("n", "hR", gitsigns.reset_buffer) - map("n", "hp", gs.preview_hunk) - map("n", "hb", function() gs.blame_line { full = true } end) - map("n", "tb", gs.toggle_current_line_blame) + map("n", "hp", gitsigns.preview_hunk) + map("n", "hb", function() gitsigns.blame_line { full = true } end) + map("n", "tb", gitsigns.toggle_current_line_blame) - map("n", "hd", gs.diffthis) - map("n", "hD", function() gs.diffthis("~") end) + map("n", "hd", gitsigns.diffthis) + map("n", "hD", function() gitsigns.diffthis("~") end) - map("n", "pd", gs.toggle_deleted) + map("n", "td", gitsigns.toggle_deleted) -- Text object - map({ "o", "x" }, "ih", ":Gitsigns select_hunk") + map({ "o", "x" }, "ih", gitsigns.select_hunk) end, }