nvim: improve git integration (diffview, gitsigns)

This commit is contained in:
2023-07-08 15:20:43 +03:00
parent 55b0c9c4fc
commit fee1efaadd
4 changed files with 58 additions and 0 deletions

View File

@ -65,6 +65,42 @@ vim.keymap.set("n", "<leader>gn", function()
vim.lsp.buf.rename()
end, { desc = "Rename" })
-- vcs
vim.keymap.set("n", "<leader>vs", function()
require("gitsigns").stage_hunk()
end, { desc = "Stage Hunk" })
vim.keymap.set("n", "<leader>vr", function()
require("gitsigns").reset_hunk()
end, { desc = "Reset Hunk" })
vim.keymap.set("v", "<leader>vs", function()
require("gitsigns").stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
end, { desc = "Stage Hunk" })
vim.keymap.set("v", "<leader>vr", function()
require("gitsigns").reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
end, { desc = "Reset Hunk" })
vim.keymap.set("n", "<leader>va", function()
require("gitsigns").stage_buffer()
end, { desc = "Stage Buffer" })
vim.keymap.set("n", "<leader>vu", function()
require("gitsigns").undo_stage_hunk()
end, { desc = "Undo Stage Hunk" })
vim.keymap.set("n", "<leader>vx", function()
require("gitsigns").reset_buffer()
end, { desc = "Reset Buffer" })
vim.keymap.set("n", "<leader>vp", function()
require("gitsigns").preview_hunk()
end, { desc = "Preview Hunk" })
vim.keymap.set("n", "<leader>vb", function()
require("gitsigns").blame_line({ full = true })
end, { desc = "Blame Line" })
vim.keymap.set("n", "<leader>vB", function()
require("gitsigns").toggle_current_line_blame()
end, { desc = "Toggle Blame" })
vim.keymap.set("n", "<leader>vt", function()
require("gitsigns").toggle_deleted()
end, { desc = "Toggle Deleted" })
vim.keymap.set("n", "<leader>vd", "<cmd>DiffviewToggle<CR>", { desc = "Diff" })
-- neotest
vim.keymap.set("n", "<leader>na", function()
require("neotest").run.attach()