@@ -255,6 +255,33 @@ require('lazy').setup({
255
255
topdelete = { text = ' ‾' },
256
256
changedelete = { text = ' ~' },
257
257
},
258
+ on_attach = function (bufnr )
259
+ -- Include essential gitsigns keymaps, for more see gitsigns README:
260
+ -- https://github.com/lewis6991/gitsigns.nvim
261
+ local gs = package.loaded .gitsigns
262
+ local function map (mode , l , r , opts )
263
+ opts = opts or {}
264
+ opts .buffer = bufnr
265
+ vim .keymap .set (mode , l , r , opts )
266
+ end
267
+ -- Navigation
268
+ map ({ ' n' , ' v' }, ' ]c' , gs .next_hunk , { desc = ' Jump to next git [c]hange' })
269
+ map ({ ' n' , ' v' }, ' [c' , gs .prev_hunk , { desc = ' Jump to previous git [c]hange' })
270
+ -- Actions
271
+ map (' n' , ' <leader>hs' , gs .stage_hunk , { desc = ' git [s]tage hunk' })
272
+ map (' n' , ' <leader>hr' , gs .reset_hunk , { desc = ' git [r]eset hunk' })
273
+ map (' n' , ' <leader>hu' , gs .undo_stage_hunk , { desc = ' git [u]ndo stage hunk' })
274
+ map (' n' , ' <leader>hp' , gs .preview_hunk , { desc = ' git [p]review hunk' })
275
+ map (' n' , ' <leader>hb' , gs .blame_line , { desc = ' git [b]lame line' })
276
+ map (' n' , ' <leader>hd' , gs .diffthis , { desc = ' git [d]iff against index' })
277
+ -- Visual mode
278
+ map (' v' , ' <leader>hs' , function ()
279
+ gs .stage_hunk { vim .fn .line ' .' , vim .fn .line ' v' }
280
+ end , { desc = ' stage git hunk' })
281
+ map (' v' , ' <leader>hr' , function ()
282
+ gs .reset_hunk { vim .fn .line ' .' , vim .fn .line ' v' }
283
+ end , { desc = ' reset git hunk' })
284
+ end ,
258
285
},
259
286
},
260
287
@@ -287,7 +314,12 @@ require('lazy').setup({
287
314
[' <leader>s' ] = { name = ' [S]earch' , _ = ' which_key_ignore' },
288
315
[' <leader>w' ] = { name = ' [W]orkspace' , _ = ' which_key_ignore' },
289
316
[' <leader>t' ] = { name = ' [T]oggle' , _ = ' which_key_ignore' },
317
+ [' <leader>h' ] = { name = ' Git [H]unk' , _ = ' which_key_ignore' },
290
318
}
319
+ -- visual mode
320
+ require (' which-key' ).register ({
321
+ [' <leader>h' ] = { ' Git [H]unk' },
322
+ }, { mode = ' v' })
291
323
end ,
292
324
},
293
325
0 commit comments