diff --git a/lua/ward/plugins/gitsigns.lua b/lua/ward/plugins/gitsigns.lua index d777cb7..b0a955e 100644 --- a/lua/ward/plugins/gitsigns.lua +++ b/lua/ward/plugins/gitsigns.lua @@ -1,24 +1,49 @@ --Note: this will show what part of a file was changed deleted or added in a git repo return { - "lewis6991/gitsigns.nvim", - -- event = "BufReadPre", + "lewis6991/gitsigns.nvim", + -- event = "BufReadPre", - config = function() - require("gitsigns").setup { - signs = { - -- add = { text = "│" }, - -- change = { text = "│" }, - delete = { text = "_", show_count = true }, - -- topdelete = { text = "‾" }, - -- changedelete = { text = "~" }, - -- untracked = { text = "┆" }, - }, - numhl = true, -- Toggle with `:Gitsigns toggle_numhl` - linehl = false, -- Toggle with `:Gitsigns toggle_linehl` - } + config = function() + require("gitsigns").setup({ + signs = { + -- add = { text = "│" }, + -- change = { text = "│" }, + delete = { text = "_", show_count = true }, + -- topdelete = { text = "‾" }, + -- changedelete = { text = "~" }, + -- untracked = { text = "┆" }, + }, + numhl = true, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` - vim.keymap.set('n', 'xs', function() - require("gitsigns").refresh(); - end, { desc = "Gitsigns refresh" }) - end, + on_attach = function(bufnr) + local gitsigns = require("gitsigns") + local wk = require("which-key") + wk.add({ + { "g", group = "Gitsigns" }; + { "gj", function () + gitsigns.nav_hunk('next') + end, buffer = bufnr, desc = "next hunk" }, + { "gk", function () + gitsigns.nav_hunk('prev') + end, buffer = bufnr, desc = "prev hunk" }, + { "gu", gitsigns.reset_buffer_index, buffer = bufnr, desc = "unstage buffer" }, + { "gp", gitsigns.preview_hunk, buffer = bufnr, desc = "preview hunk" }, + { "gP", gitsigns.preview_hunk_inline, buffer = bufnr, desc = "preview hunk inline" }, + { "gs", gitsigns.stage_hunk, buffer = bufnr, desc = "stage hunk" }, + { "gr", gitsigns.reset_hunk, buffer = bufnr, desc = "reset hunk" }, + { "gS", gitsigns.stage_buffer, buffer = bufnr, desc = "stage buffer" }, + { "gR", gitsigns.reset_buffer, buffer = bufnr, desc = "reset buffer" }, + { "gd", gitsigns.diffthis, buffer = bufnr, desc = "diff this" }, + { "gD", function() + gitsigns.diffthis('~') + end, buffer = bufnr, desc = "diff ~" }, + { "gt", group = "Gitsigns toggles" }; + { "gtr", gitsigns.refresh, desc = "Gitsigns refresh" }, + { "gtb", gitsigns.toggle_current_line_blame, desc = "toggle blame" }, + { "gtw", gitsigns.toggle_word_diff, desc = "toggle word diff" }, + }) + end, + }) + end, }