dotfiles/nvim/.config/nvim/after/plugin/gitsigns.lua
Sanchayan Maity fe34c26993 nvim: fugitive/gitsigns: Enable git blame line
Now that we dropped git-messenger, enable git blame line with fugitive
and gitsigns.
2021-11-17 11:13:14 +05:30

67 lines
2.9 KiB
Lua

require('gitsigns').setup {
status_formatter = nil,
sign_priority = 6,
update_debounce = 100,
max_file_length = 10000,
signcolumn = true,
numhl = false,
linehl = false,
word_diff = false,
attach_to_untracked = false,
current_line_blame = false,
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
},
watch_gitdir = {
interval = 1000,
follow_files = true
},
current_line_blame_formatter_opts = {
relative_time = false
},
preview_config = {
-- Options passed to nvim_open_win
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1
},
yadm = {
enable = false
},
signs = {
add = { hl = 'GitSignsAdd' , text = '', numhl='GitSignsAddNr' , linehl='GitSignsAddLn' },
change = { hl = 'GitSignsChange', text = '', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
delete = { hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
topdelete = { hl = 'GitSignsDelete', text = '', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
changedelete = { hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
},
keymaps = {
noremap = true,
['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>lua require\"gitsigns.actions\".next_hunk()<CR>'" },
['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>lua require\"gitsigns.actions\".prev_hunk()<CR>'" },
['n <Leader>hl'] = '<cmd>lua require"gitsigns".setloclist()<CR>',
['n <Leader>hp'] = '<cmd>lua require"gitsigns".preview_hunk()<CR>',
['n <Leader>hq'] = '<cmd>lua require"gitsigns".setqflist()<CR>',
['n <Leader>hQ'] = '<cmd>lua require"gitsigns".setqflist("attached")<CR>',
['n <Leader>hr'] = '<cmd>lua require"gitsigns".reset_hunk()<CR>',
['v <Leader>hr'] = '<cmd>lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
['n <Leader>hR'] = '<cmd>lua require"gitsigns".reset_buffer()<CR>',
['n <Leader>hs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>',
['v <Leader>hs'] = '<cmd>lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
['n <Leader>hS'] = '<cmd>lua require"gitsigns".stage_buffer()<CR>',
['n <Leader>ht'] = '<cmd>lua require"gitsigns".toggle_signs()<CR>',
['n <Leader>hu'] = '<cmd>lua require"gitsigns".undo_stage_hunk()<CR>',
['n <Leader>hU'] = '<cmd>lua require"gitsigns".reset_buffer_index()<CR>',
['n <Leader>hb'] = '<cmd>lua require"gitsigns".blame_line()<CR>',
['o ih'] = ':<C-U>lua require"gitsigns.actions".select_hunk()<CR>',
['x ih'] = ':<C-U>lua require"gitsigns.actions".select_hunk()<CR>'
},
}