You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

39 lines
1.6 KiB

return {
"tpope/vim-fugitive",
dependencies = {
"shumphrey/fugitive-gitlab.vim",
},
config = function()
vim.opt.diffopt = vim.opt.diffopt + "vertical"
vim.opt.display = vim.opt.display + "lastline"
vim.api.nvim_set_keymap("n", "<leader>gl", ":GBrowse<CR>", { noremap = true })
vim.cmd([[ let g:fugitive_gitlab_domains = {"ssh://code.codium.com.au": "https://code.codium.com.au"} ]])
local function gitBlame(lines)
local current_file = vim.fn.expand('%:p')
local range = lines[1] .. "," .. lines[2]
local cmd = string.format("git -C %s blame -L %s %s | awk '{print $1}'", vim.fn.shellescape(vim.fn.fnamemodify(current_file, ':h')), range, vim.fn.fnamemodify(current_file, ':t'))
local handle = io.popen(cmd)
local result = handle:read("*a")
handle:close()
return result
end
vim.keymap.set('n', '<leader>gc', function ()
vim.cmd(string.format('Git show %s', gitBlame({vim.fn.line('.'), vim.fn.line('.')})))
end)
local options = { noremap = true, silent = true }
vim.keymap.set('n', '<leader>gg', '<cmd>Git<CR>', options)
vim.keymap.set('n', '<leader>gp', '<cmd>Git push<CR>', options)
vim.keymap.set('n', '<leader>gP', '<cmd>Git pull<CR>', options)
vim.keymap.set('n', '<leader>ga', '<cmd>Git add .<CR>', options)
vim.keymap.set('n', '<leader>gA', '<cmd>Git add<CR>', options)
vim.keymap.set('n', '<leader>gc', '<cmd>Git commit<CR>', options)
vim.keymap.set('n', '<leader>gC', '<cmd>Git commit -a<CR>', options)
end,
}