nix/homes/modules/programs/neovim/lua/plugins/git.lua

65 lines
1.8 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)
end,
})
end,
},
}