|
|
- return {
- "tpope/vim-fugitive",
- event = "VeryLazy",
- dependencies = {
- "shumphrey/fugitive-gitlab.vim",
- },
- config = function()
- vim.opt.diffopt = vim.opt.diffopt + "vertical"
- vim.opt.display = vim.opt.display + "lastline"
-
- local fugitive_augroup = vim.api.nvim_create_augroup("fugitive_mappings", { clear = true })
-
- local function set_fugitive_mappings()
- local opts = { noremap = true, silent = true }
-
- vim.api.nvim_buf_set_keymap(0, "n", "<leader>gp", "<cmd>Git push<CR>", opts)
- vim.api.nvim_buf_set_keymap(0, "n", "<leader>gP", "<cmd>Git pull<CR>", opts)
- vim.api.nvim_buf_set_keymap(0, "n", "<leader>gc", "<cmd>Git commit<CR>", opts)
- end
-
- -- Create an autocmd to trigger the function when entering a Fugitive buffer
- vim.api.nvim_create_autocmd("FileType", {
- group = fugitive_augroup,
- pattern = "fugitive",
- callback = set_fugitive_mappings,
- })
-
- local opts = { noremap = true, silent = true }
-
- vim.keymap.set("n", "<leader>gg", function ()
- vim.cmd("Git")
- end, opts)
-
- vim.keymap.set("v", "<leader>gl", function()
- local startPos = vim.fn.getpos("v")
- local endPos = vim.fn.getpos(".")
-
- local startLine = math.min(startPos[2], endPos[2])
- local endLine = math.max(startPos[2], endPos[2])
-
- if startLine == 0 or endLine == 0 then
- vim.notify(vim.inspect(vim.fn.getpos("'<")) .. " to " .. vim.inspect(vim.fn.getpos("'>")))
- return
- end
-
- vim.cmd(string.format("Git log -L %d,%d:%s", startLine, endLine, vim.fn.expand("%:.")))
- end, opts)
- end,
- }
|