nvim-configs/lua/plugin/gitsigns.lua

44 lines
1.6 KiB
Lua

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', '<leader>gl', git.blame_line, { desc = 'Git blame line' })
vim.keymap.set('n', '<leader>gg', git.toggle_word_diff, { desc = 'Git toggle word diff' })
vim.keymap.set({ 'n', 'v' }, '<leader>gr', git.reset_hunk, { desc = 'Git reset hunk' })
vim.keymap.set('n', '<m-b>', git.stage_buffer, { desc = 'Git stage buffer' })
vim.keymap.set('n', '<m-j>', function() git.nav_hunk 'next' end, { desc = 'Git next hunk' })
vim.keymap.set('n', '<m-k>', function() git.nav_hunk 'prev' end, { desc = 'Git previous hunk' })
vim.keymap.set('n', '<s-c-down>', function() git.nav_hunk 'next' end, { desc = 'Git next hunk' })
vim.keymap.set('n', '<s-c-up>', function() git.nav_hunk 'prev' end, { desc = 'Git previous hunk' })
vim.keymap.set('n', '<m-l>', git.preview_hunk, { desc = 'Git preview hunk' })
vim.keymap.set('n', '<m-h>', git.stage_hunk, { desc = 'Git stage hunk' })
vim.keymap.set('n', '<m-right>', git.preview_hunk, { desc = 'Git preview hunk' })
vim.keymap.set('n', '<m-left>', git.stage_hunk, { desc = 'Git stage hunk' })
end
return M