44 lines
1.6 KiB
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
|