1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
return {
{
"sindrets/diffview.nvim",
cmd = {
"DiffviewLog",
"DiffviewOpen",
"DiffviewClose",
"DiffviewRefresh",
"DiffviewFocusFiles",
"DiffviewFileHistory",
"DiffviewToggleFiles",
},
},
{
"NeogitOrg/neogit",
dependencies = {
"nvim-lua/plenary.nvim",
"sindrets/diffview.nvim",
},
cmd = "Neogit",
opts = {
integrations = {
diffview = true,
},
},
},
{
"lewis6991/gitsigns.nvim",
dependencies = { "folke/which-key.nvim" },
event = { "BufReadPre", "BufNewFile" },
opts = {
on_attach = function(bufnr)
local gs = require("gitsigns")
local wk = require("which-key")
wk.register({
["]c"] = {
function()
if vim.wo.diff then return "]c" end
vim.schedule(gs.next_hunk)
return "<Ignore>"
end,
"Next hunk",
},
["[c"] = {
function()
if vim.wo.diff then return "[c" end
vim.schedule(gs.prev_hunk)
return "<Ignore>"
end,
"Previous hunk",
},
}, {expr=true})
wk.register({
["<leader>h"] = {
name = "+Gitsigns",
s = { gs.stage_hunk, "Stage hunk" },
r = { gs.reset_hunk, "Reset hunk" },
S = { gs.stage_buffer, "Stage buffer" },
u = { gs.undo_stage_hunk, "Undo stage hunk" },
R = { gs.reset_buffer, "Reset buffer" },
p = { gs.preview_hunk, "Preview hunk" },
b = { function() gs.blame_line({full=true}) end, "Blame line" },
B = { gs.toggle_current_line_blame, "Toggle current line blame" },
d = { gs.diffthis, "Diff current buffer" },
D = { function() gs.diffthis("~") end, "TODO" },
x = { gs.toggle_deleted, "Toggle deleted" },
},
})
wk.register({
["<leader>h"] = {
name = "+Gitsigns",
s = {
function() gs.stage_hunk({vim.fn.line("."), vim.fn.line("v")}) end,
"Stage selected lines",
},
r = {
function() gs.reset_hunk({vim.fn.line("."), vim.fn.line("v")}) end,
"Reset selected lines",
},
},
}, {mode="v"})
wk.register({
["ih"] = { ":<C-U>Gitsigns select_hunk<CR>", "Select hunk" },
}, {mode={ "o", "x" }})
end,
},
},
}
|