dotfiles/.config/nvim/lua/plugins/extras/editor/git/diffview.lua
2024-09-03 18:48:32 +02:00

57 lines
2.9 KiB
Lua

local prefix = "<leader>gC"
return {
{
"sindrets/diffview.nvim",
keys = {
{ "<leader>gY", "<cmd>DiffviewFileHistory<CR>", desc = "Repo History (Diff)" },
{ "<leader>gd", "<cmd>DiffviewOpen<CR>", desc = "Diff View" },
},
opts = function(_, opts)
local actions = require("diffview.actions")
opts.enhanced_diff_hl = true
opts.view = {
default = { winbar_info = true },
file_history = { winbar_info = true },
}
opts.hooks = {
diff_buf_read = function(bufnr)
vim.b[bufnr].view_activated = false
end,
}
opts.keymaps = {
--stylua: ignore
view = {
{ "n", prefix .. "o", actions.conflict_choose("ours"), { desc = "Choose the OURS version of a conflict" } },
{ "n", prefix .. "t", actions.conflict_choose("theirs"), { desc = "Choose the THEIRS version of a conflict" } },
{ "n", prefix .. "b", actions.conflict_choose("base"), { desc = "Choose the BASE version of a conflict" } },
{ "n", prefix .. "a", actions.conflict_choose("all"), { desc = "Choose all the versions of a conflict" } },
{ "n", prefix .. "x", actions.conflict_choose("none"), { desc = "Delete the conflict region" } },
{ "n", prefix .. "O", actions.conflict_choose_all("ours"), { desc = "Choose the OURS version of a conflict for the whole file" } },
{ "n", prefix .. "T", actions.conflict_choose_all("theirs"), { desc = "Choose the THEIRS version of a conflict for the whole file" } },
{ "n", prefix .. "B", actions.conflict_choose_all("base"), { desc = "Choose the BASE version of a conflict for the whole file" } },
{ "n", prefix .. "A", actions.conflict_choose_all("all"), { desc = "Choose all the versions of a conflict for the whole file" } },
{ "n", prefix .. "X", actions.conflict_choose_all("none"), { desc = "Delete the conflict region for the whole file" } },
},
--stylua: ignore
file_panel = {
{ "n", prefix .. "O", actions.conflict_choose_all("ours"), { desc = "Choose the OURS version of a conflict for the whole file" } },
{ "n", prefix .. "T", actions.conflict_choose_all("theirs"), { desc = "Choose the THEIRS version of a conflict for the whole file" } },
{ "n", prefix .. "B", actions.conflict_choose_all("base"), { desc = "Choose the BASE version of a conflict for the whole file" } },
{ "n", prefix .. "A", actions.conflict_choose_all("all"), { desc = "Choose all the versions of a conflict for the whole file" } },
{ "n", prefix .. "X", actions.conflict_choose_all("none"), { desc = "Delete the conflict region for the whole file" } },
},
}
end,
},
{
"folke/which-key.nvim",
opts = {
spec = {
{ prefix, group = "conflicts", icon = "" },
},
},
},
}