From 07d3eb298b51d56e9540bff7c7b0918badd32dd6 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Tue, 4 Oct 2022 17:29:14 -0500 Subject: refactor(nvim): update gitsigns keymap style --- nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua | 52 ++++++++++++---------- 1 file changed, 29 insertions(+), 23 deletions(-) (limited to 'nvim/.config') diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua b/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua index 4b73f2c..19d9049 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua @@ -1,7 +1,7 @@ local utils = require("tobyvin.utils") local M = {} -M.with_selection = function(callback) +M.with_range = function(callback) return function() callback(utils.buffer.get_visual_range()) end @@ -11,30 +11,36 @@ M.show_blameline = function() require("gitsigns").blame_line({ full = true }) end +M.toggle_blameline = function() + require("gitsigns").toggle_current_line_blame() +end + M.on_attach = function(bufnr) local gitsigns = require("gitsigns") - local nmap = utils.keymap.group("n", "g", { desc = "Git", buffer = bufnr }) - nmap("b", gitsigns.blame_line, { desc = "Show blame" }) - nmap("B", M.show_blameline, { desc = "Show blame" }) - nmap("", gitsigns.toggle_current_line_blame, { desc = "Toggle blame line" }) - nmap("j", gitsigns.next_hunk, { desc = "Next Hunk" }) - nmap("k", gitsigns.prev_hunk, { desc = "Prev Hunk" }) - - nmap("p", gitsigns.preview_hunk, { desc = "Preview Hunk" }) - nmap("r", gitsigns.reset_hunk, { desc = "Reset Hunk" }) - nmap("s", gitsigns.stage_hunk, { desc = "Stage Hunk" }) - nmap("u", gitsigns.undo_stage_hunk, { desc = "Undo Stage Hunk" }) - - -- nmap("P", gitsigns.preview_buffer, { desc = "Preview Buffer" }) - nmap("R", gitsigns.reset_buffer, { desc = "Reset Buffer" }) - nmap("S", gitsigns.stage_buffer, { desc = "Stage Buffer" }) - nmap("U", gitsigns.reset_buffer_index, { desc = "Undo Stage Buffer" }) - - local vmap = utils.keymap.group("v", "g", { desc = "Git", buffer = bufnr }) - vmap("p", M.with_selection(gitsigns.preview_hunk), { desc = "Preview Hunk" }) - vmap("r", M.with_selection(gitsigns.reset_hunk), { desc = "Reset Hunk" }) - vmap("s", M.with_selection(gitsigns.stage_hunk), { desc = "Stage Hunk" }) - vmap("u", M.with_selection(gitsigns.undo_stage_hunk), { desc = "Undo Stage Hunk" }) + utils.keymap.group("n", "g", { desc = "Git", buffer = bufnr }) + vim.keymap.set("n", "gb", gitsigns.blame_line, { desc = "Show blame", buffer = bufnr }) + vim.keymap.set("n", "gB", M.show_blameline, { desc = "Show blame", buffer = bufnr }) + vim.keymap.set("n", "g", M.toggle_blameline, { desc = "Toggle blame", buffer = bufnr }) + vim.keymap.set("n", "gj", gitsigns.next_hunk, { desc = "Next Hunk", buffer = bufnr }) + vim.keymap.set("n", "gk", gitsigns.prev_hunk, { desc = "Prev Hunk", buffer = bufnr }) + + vim.keymap.set("n", "gp", gitsigns.preview_hunk, { desc = "Preview Hunk", buffer = bufnr }) + vim.keymap.set("n", "gr", gitsigns.reset_hunk, { desc = "Reset Hunk", buffer = bufnr }) + vim.keymap.set("n", "gs", gitsigns.stage_hunk, { desc = "Stage Hunk", buffer = bufnr }) + vim.keymap.set("n", "gu", gitsigns.undo_stage_hunk, { desc = "Undo Stage Hunk", buffer = bufnr }) + + -- vim.keymap.set("n", "gP", gitsigns.preview_buffer, { desc = "Preview Buffer", buffer = bufnr }) + vim.keymap.set("n", "gR", gitsigns.reset_buffer, { desc = "Reset Buffer", buffer = bufnr }) + vim.keymap.set("n", "gS", gitsigns.stage_buffer, { desc = "Stage Buffer", buffer = bufnr }) + vim.keymap.set("n", "gU", gitsigns.reset_buffer_index, { desc = "Undo Stage Buffer", buffer = bufnr }) + + utils.keymap.group("v", "g", { desc = "Git", buffer = bufnr }) + vim.keymap.set("v", "gp", M.with_range(gitsigns.preview_hunk), { desc = "Preview Hunk", buffer = bufnr }) + vim.keymap.set("v", "gr", M.with_range(gitsigns.reset_hunk), { desc = "Reset Hunk", buffer = bufnr }) + vim.keymap.set("v", "gs", M.with_range(gitsigns.stage_hunk), { desc = "Stage Hunk", buffer = bufnr }) + vim.keymap.set("v", "gu", M.with_range(gitsigns.undo_stage_hunk), { desc = "Unstage Hunk", buffer = bufnr }) + + vim.api.nvim_exec_autocmds("User", { pattern = "GitAttach", data = { buf = bufnr } }) end M.setup = function() -- cgit v1.2.3-70-g09d2