From b40f3e3dc774fbd445b44d15c43810ebd74023cc Mon Sep 17 00:00:00 2001 From: Trey Bastian Date: Sat, 6 Jun 2026 11:58:24 +0100 Subject: added gitsigns --- lua/config/git.lua | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) (limited to 'lua/config/git.lua') diff --git a/lua/config/git.lua b/lua/config/git.lua index 41b4f5a..eaaa57e 100644 --- a/lua/config/git.lua +++ b/lua/config/git.lua @@ -1,5 +1,67 @@ vim.pack.add({ - "https://github.com/tpope/vim-fugitive", + "https://github.com/lewis6991/gitsigns.nvim", +}) + +require("gitsigns").setup({ + on_attach = function(bufnr) + local gitsigns = require("gitsigns") + + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + 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) + + map("n", "hs", gitsigns.stage_hunk) + map("n", "hr", gitsigns.reset_hunk) + + 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", gitsigns.stage_buffer) + map("n", "hR", gitsigns.reset_buffer) + map("n", "hp", gitsigns.preview_hunk) + map("n", "hi", gitsigns.preview_hunk_inline) + + map("n", "hb", function() + gitsigns.blame_line({ full = true }) + end) + + map("n", "hd", gitsigns.diffthis) + + map("n", "hD", function() + gitsigns.diffthis("~") + end) + + map("n", "hQ", function() + gitsigns.setqflist("all") + end) + map("n", "hq", gitsigns.setqflist) + + map("n", "tb", gitsigns.toggle_current_line_blame) + map("n", "tw", gitsigns.toggle_word_diff) + end, }) local lazygit_buf = nil -- cgit v1.2.3