| @ -1,49 +1,59 @@ | |||||
| return { | 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, | |||||
| { | |||||
| "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, | |||||
| }, | |||||
| { | |||||
| "rbong/vim-flog", | |||||
| lazy = true, | |||||
| cmd = { "Flog", "Flogsplit", "Floggit" }, | |||||
| dependencies = { | |||||
| "tpope/vim-fugitive", | |||||
| }, | |||||
| }, | |||||
| } | } | ||||