From 560c09a1b1f40e4de68cd94f8b02f2734bd8911d Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Tue, 21 Nov 2023 17:58:40 +0100 Subject: [PATCH] add git signs plugin --- lua/weeheavy/plugins/gitsigns.lua | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lua/weeheavy/plugins/gitsigns.lua diff --git a/lua/weeheavy/plugins/gitsigns.lua b/lua/weeheavy/plugins/gitsigns.lua new file mode 100644 index 0000000..653c184 --- /dev/null +++ b/lua/weeheavy/plugins/gitsigns.lua @@ -0,0 +1,38 @@ +-- Adds git related signs to the gutter, as well as utilities for managing changes +return { +'lewis6991/gitsigns.nvim', +opts = { + -- See `:help gitsigns.txt` + signs = { + add = { text = '+' }, + change = { text = '~' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + }, + on_attach = function(bufnr) + vim.keymap.set('n', 'hp', require('gitsigns').preview_hunk, { buffer = bufnr, desc = 'Preview git hunk' }) + + -- don't override the built-in and fugitive keymaps + local gs = package.loaded.gitsigns + vim.keymap.set({ 'n', 'v' }, ']c', function() + if vim.wo.diff then + return ']c' + end + vim.schedule(function() + gs.next_hunk() + end) + return '' + end, { expr = true, buffer = bufnr, desc = 'Jump to next hunk' }) + vim.keymap.set({ 'n', 'v' }, '[c', function() + if vim.wo.diff then + return '[c' + end + vim.schedule(function() + gs.prev_hunk() + end) + return '' + end, { expr = true, buffer = bufnr, desc = 'Jump to previous hunk' }) + end, +}, +}