93 lines
2.6 KiB
Lua
93 lines
2.6 KiB
Lua
return {
|
|
{
|
|
"vim-fugitive",
|
|
enabled = nixCats("git.merge") or false,
|
|
cmd = { "Git", "Gvdiffsplit" },
|
|
},
|
|
{
|
|
"resolve-nvim",
|
|
enabled = nixCats("git.merge") or false,
|
|
event = { "BufReadPre", "BufNewFile" },
|
|
after = function(plugin)
|
|
require("resolve").setup({
|
|
default_keymaps = false,
|
|
on_conflicts_resolved = function(info)
|
|
-- NOTE: am not sure if i wanna stage files automatically
|
|
-- local filepath = vim.api.nvim_buf_get_name(info.bufnr)
|
|
-- vim.fn.system({ "git", "add", filepath })
|
|
-- vim.notify("conflicts resolved :3 file staged yayayayy <3", vim.log.levels.INFO)
|
|
vim.notify("conflicts resolved :3", vim.log.levels.INFO)
|
|
end,
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"gitsigns.nvim",
|
|
enabled = nixCats("git.gitsigns") or false,
|
|
after = function(plugin)
|
|
require("gitsigns").setup({
|
|
signs = {
|
|
add = { text = "┃" },
|
|
change = { text = "┇" },
|
|
delete = { text = "_" },
|
|
topdelete = { text = "‾" },
|
|
changedelete = { text = "~" },
|
|
untracked = { text = "╎" },
|
|
},
|
|
signs_staged = {
|
|
add = { text = "┃" },
|
|
change = { text = "┇" },
|
|
delete = { text = "_" },
|
|
topdelete = { text = "‾" },
|
|
changedelete = { text = "~" },
|
|
untracked = { text = "╎" },
|
|
},
|
|
on_attach = function(bufnr)
|
|
local gitsigns = require("gitsigns")
|
|
|
|
-- toggle git blame
|
|
vim.keymap.set("n", "<leader>gb", function()
|
|
local wins = vim.api.nvim_list_wins()
|
|
for _, win in ipairs(wins) do
|
|
local buf = vim.api.nvim_win_get_buf(win)
|
|
local ft = vim.api.nvim_get_option_value("filetype", { buf = buf })
|
|
if ft == "gitsigns-blame" then
|
|
vim.api.nvim_win_close(win, true)
|
|
return
|
|
end
|
|
end
|
|
vim.cmd("Gitsigns blame")
|
|
end)
|
|
|
|
vim.keymap.set("n", "<leader>bl", gitsigns.toggle_current_line_blame)
|
|
|
|
vim.keymap.set("n", "]c", function()
|
|
if vim.wo.diff then
|
|
vim.cmd.normal({ "]c", bang = true })
|
|
else
|
|
gitsigns.nav_hunk("next")
|
|
end
|
|
end)
|
|
|
|
vim.keymap.set("n", "[c", function()
|
|
if vim.wo.diff then
|
|
vim.cmd.normal({ "[c", bang = true })
|
|
else
|
|
gitsigns.nav_hunk("prev")
|
|
end
|
|
end)
|
|
|
|
vim.keymap.set("n", "<leader>hs", gitsigns.stage_hunk)
|
|
vim.keymap.set("n", "<leader>hu", gitsigns.undo_stage_hunk)
|
|
|
|
vim.keymap.set("n", "<leader>hS", gitsigns.stage_buffer)
|
|
vim.keymap.set("n", "<leader>hU", gitsigns.reset_buffer_index)
|
|
|
|
vim.keymap.set("n", "<leader>hi", gitsigns.toggle_current_line_blame)
|
|
|
|
vim.keymap.set("n", "<leader>hp", gitsigns.preview_hunk_inline)
|
|
end,
|
|
})
|
|
end,
|
|
},
|
|
}
|