feat(git): <leader>gb for Git Blame Line

This commit is contained in:
Folke Lemaitre 2024-04-11 17:23:46 +02:00
parent 32eacde793
commit 9e3af1070f
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040
2 changed files with 19 additions and 0 deletions

View file

@ -127,6 +127,7 @@ map("n", "<leader>ub", function() LazyVim.toggle("background", false, {"light",
-- lazygit -- lazygit
map("n", "<leader>gg", function() LazyVim.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" }) map("n", "<leader>gg", function() LazyVim.lazygit( { cwd = LazyVim.root.git() }) end, { desc = "Lazygit (Root Dir)" })
map("n", "<leader>gG", function() LazyVim.lazygit() end, { desc = "Lazygit (cwd)" }) map("n", "<leader>gG", function() LazyVim.lazygit() end, { desc = "Lazygit (cwd)" })
map("n", "<leader>gb", LazyVim.lazygit.blame_line, { desc = "Git Blame Line" })
map("n", "<leader>gf", function() map("n", "<leader>gf", function()
local git_path = vim.api.nvim_buf_get_name(0) local git_path = vim.api.nvim_buf_get_name(0)

View file

@ -140,4 +140,22 @@ gui:
M.dirty = false M.dirty = false
end end
---@param opts? {count?: number}|LazyCmdOptions
function M.blame_line(opts)
opts = vim.tbl_deep_extend("force", {
count = 3,
filetype = "git",
size = {
width = 0.6,
height = 0.6,
},
border = "rounded",
}, opts or {})
local cursor = vim.api.nvim_win_get_cursor(0)
local line = cursor[1] - 1
local file = vim.api.nvim_buf_get_name(0)
local cmd = { "git", "log", "-n", opts.count, "-u", "-L", line .. ",+1:" .. file }
return require("lazy.util").float_cmd(cmd, opts)
end
return M return M