Xinqi Bao's Git

fix(tmux): improve prompts and key handling
[dotfiles.git] / .config / nvim / lua / plugin-config / gitsigns.lua
1 require('gitsigns').setup({
2 on_attach = function(bufnr)
3 local gs = require('gitsigns')
4 local function map(mode, lhs, rhs)
5 vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, silent = true })
6 end
7
8 map('n', ']c', function()
9 if vim.wo.diff then
10 vim.cmd.normal({ ']c', bang = true })
11 else
12 gs.nav_hunk('next')
13 end
14 end)
15 map('n', '[c', function()
16 if vim.wo.diff then
17 vim.cmd.normal({ '[c', bang = true })
18 else
19 gs.nav_hunk('prev')
20 end
21 end)
22
23 map('n', '<leader>hp', gs.preview_hunk)
24 map('n', '<leader>hs', gs.stage_hunk)
25 map('n', '<leader>hr', gs.reset_hunk)
26 map('n', '<leader>hb', gs.blame)
27 map('x', '<leader>hs', function()
28 gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') })
29 end)
30 map('x', '<leader>hr', function()
31 gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') })
32 end)
33 end,
34 })