From b74711803a49126fe45d93226c7bd08deab2776e Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Fri, 27 May 2022 12:57:26 +0200 Subject: vim: update gitsigns config --- .vim/lua/plugins.lua | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to '.vim/lua') diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua index fe6c0e0..56926c3 100644 --- a/.vim/lua/plugins.lua +++ b/.vim/lua/plugins.lua @@ -99,7 +99,47 @@ return require('packer').startup({function() numhl = false, linehl = false, word_diff = false, - -- on_attach = function(bufnr) end, + preview_config = { + border = { '', '', '', ' ', '', '', '', ' ' }, + }, + + on_attach = function(bufnr) + local gs = package.loaded.gitsigns + + vim.keymap.set('n', ']c', function() + if vim.wo.diff then return ']c' end + vim.schedule(gs.next_hunk) + return '' + end, {expr=true, buffer=bufnr}) + + vim.keymap.set('n', '[c', function() + if vim.wo.diff then return '[c' end + vim.schedule(gs.prev_hunk) + return '' + end, {expr=true, buffer=bufnr}) + + vim.keymap.set('n', 'hb', gs.toggle_current_line_blame, {buffer=bufnr}) + vim.keymap.set('n', 'hB', function() gs.blame_line {full=true} end, {buffer=bufnr}) + vim.keymap.set('n', 'hp', gs.preview_hunk, {buffer=bufnr}) + vim.keymap.set('n', 'hd', gs.diffthis, {buffer=bufnr}) + vim.keymap.set('n', 'hl', function() + gs.setqflist(0, {open=false}) + vim.schedule(function() require('telescope.builtin').quickfix() end) + end, {buffer=bufnr}) + + wk_register { + [']c'] = 'next git hunk', + ['[c'] = 'previous git hunk', + ['h'] = { + name = '+GitSigns', + b = 'toggle line blame', + B = 'show full line blame', + p = 'preview hunk', + d = 'diffthis', + l = 'list hunks' + } + } + end, } end} -- }}} -- cgit 1.4.1