diff --git a/lua/config/gitsigns.lua b/lua/config/gitsigns.lua index 9585021..51a8b67 100644 --- a/lua/config/gitsigns.lua +++ b/lua/config/gitsigns.lua @@ -1,4 +1,34 @@ +local function on_attach(bufnr) + local gs = require("gitsigns") + + local function map(mode, lhs, rhs, desc) + vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc }) + end + + map("n", "]g", function() + if vim.wo.diff then return "]g" end + vim.schedule(function() gs.next_hunk() end) + return "" + end, "Next hunk") + + map("n", "[g", function() + if vim.wo.diff then return "[g" end + vim.schedule(function() gs.prev_hunk() end) + return "" + end, "Prev hunk") + + map("n", "hs", gs.stage_hunk, "Stage hunk") + map("n", "hr", gs.reset_hunk, "Reset hunk") + map("n", "hp", gs.preview_hunk, "Preview hunk") + map("n", "hb", gs.blame_line, "Blame line") + map("n", "hd", gs.diffthis, "Diff this") + map("n", "hD", function() gs.diffthis("~") end, "Diff against ~") + map("n", "htb", gs.toggle_current_line_blame, "Toggle line blame") + map("n", "htd", gs.toggle_deleted, "Toggle deleted") +end + require("gitsigns").setup { + on_attach = on_attach, signs = { add = { text = "┃" }, change = { text = "┃" }, diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index d71782d..c2a5fe3 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -5,14 +5,14 @@ return { { "lewis6991/gitsigns.nvim", config = function() - require "gitsigns" + require "config.gitsigns" end, }, { "vimpostor/vim-tpipeline" }, { "aznhe21/actions-preview.nvim", config = function() - require "actions-preview" + require "config.actions-preview" end, }, {