feat(git): configure gitsigns with improved sign display and features

This commit is contained in:
sankalp committed 2025-09-29 20:43:47 +05:45
1 parent 295a1d9e09
commit ccc566ba2d
1 file changed
+47 -34
+47 -34
View File
@@ -3,45 +3,58 @@ return {
-- git signs
{
'lewis6991/gitsigns.nvim',
opts = {
signs = {
add = {
text = '+',
config = function()
require('gitsigns').setup({
signs = {
add = { text = '' },
change = { text = '󱗜' },
delete = { text = '󰍵' },
topdelete = { text = '󱥨 ' },
changedelete = { text = '󰾟 ' },
untracked = { text = '󰰧 ' },
},
change = {
text = '▎',
signs_staged = {
add = { text = '' },
change = { text = '󱗜' },
delete = { text = '󰍵' },
topdelete = { text = '󱥨 ' },
changedelete = { text = '󰾟 ' },
untracked = { text = '󰰧 ' },
},
delete = {
text = '',
signs_staged_enable = true,
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true,
},
topdelete = {
text = '▾',
auto_attach = true,
attach_to_untracked = false,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
virt_text_priority = 100,
use_focus = true,
},
changedelete = {
text = '~',
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1,
},
untracked = {
text = '┆',
},
},
signs_staged = {
add = {
text = '+',
},
change = {
text = '▎',
},
delete = {
text = '',
},
topdelete = {
text = '▾',
},
changedelete = {
text = '~',
},
},
},
})
end,
},
-- lazygit integration