local M = { 'lewis6991/gitsigns.nvim', opts = { signs = { add = { text = '█' }, change = { text = '█' }, delete = { text = '█' }, topdelete = { text = '█' }, changedelete = { text = '█' }, untracked = { text = '?' }, }, signs_staged = { add = { text = '▌' }, change = { text = '▌' }, delete = { text = '▌' }, topdelete = { text = '▌' }, changedelete = { text = '▌' }, untracked = { text = '?' }, }, signs_staged_enable = true, current_line_blame = true, max_file_length = 40000, }, } M.keymap = function() local git = require 'gitsigns' vim.keymap.set('n', 'gl', git.blame_line, { desc = 'Git blame line' }) vim.keymap.set('n', 'gg', git.toggle_word_diff, { desc = 'Git toggle word diff' }) vim.keymap.set({ 'n', 'v' }, 'gr', git.reset_hunk, { desc = 'Git reset hunk' }) vim.keymap.set('n', '', git.stage_buffer, { desc = 'Git stage buffer' }) vim.keymap.set('n', '', function() git.nav_hunk 'next' end, { desc = 'Git next hunk' }) vim.keymap.set('n', '', function() git.nav_hunk 'prev' end, { desc = 'Git previous hunk' }) vim.keymap.set('n', '', function() git.nav_hunk 'next' end, { desc = 'Git next hunk' }) vim.keymap.set('n', '', function() git.nav_hunk 'prev' end, { desc = 'Git previous hunk' }) vim.keymap.set('n', '', git.preview_hunk, { desc = 'Git preview hunk' }) vim.keymap.set('n', '', git.stage_hunk, { desc = 'Git stage hunk' }) vim.keymap.set('n', '', git.preview_hunk, { desc = 'Git preview hunk' }) vim.keymap.set('n', '', git.stage_hunk, { desc = 'Git stage hunk' }) end return M