-- Git workflow enhancements: diffview, git-blame, and Octo keymaps return { -- Diffview: Side-by-side diffs and file history { "sindrets/diffview.nvim", cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewFileHistory", "DiffviewToggleFiles" }, keys = { { "gg", "DiffviewOpen", desc = "Diffview: Open" }, { "gD", "DiffviewClose", desc = "Diffview: Close" }, { "gf", "DiffviewFileHistory %", desc = "Diffview: File History" }, { "gF", "DiffviewFileHistory", desc = "Diffview: Branch History" }, { "gm", "DiffviewOpen origin/main...HEAD", desc = "Diffview: Compare to main" }, { "gM", "DiffviewOpen origin/master...HEAD", desc = "Diffview: Compare to master" }, }, opts = { enhanced_diff_hl = true, view = { default = { layout = "diff2_horizontal", }, merge_tool = { layout = "diff3_mixed", }, file_history = { layout = "diff2_horizontal", }, }, file_panel = { win_config = { position = "left", width = 35, }, }, }, }, -- Git blame: Inline blame annotations { "f-person/git-blame.nvim", event = "BufRead", opts = { enabled = false, -- Disabled by default, toggle with gB date_format = "%r", -- relative time message_when_not_committed = "Not committed yet", virtual_text_column = 80, }, keys = { { "gB", "GitBlameToggle", desc = "Toggle Git Blame" }, { "go", "GitBlameOpenCommitURL", desc = "Open Commit in Browser" }, { "gy", "GitBlameCopyCommitURL", desc = "Copy Commit URL" }, }, }, -- Octo.nvim keymaps (plugin already installed via lazyvim.plugins.extras.util.octo) { "pwntester/octo.nvim", keys = { -- PR operations { "gpl", "Octo pr list", desc = "List PRs" }, { "gpc", "Octo pr create", desc = "Create PR" }, { "gpo", "Octo pr checkout", desc = "Checkout PR" }, { "gpb", "Octo pr browser", desc = "Open PR in Browser" }, { "gpr", "Octo pr ready", desc = "Mark PR Ready" }, { "gpd", "Octo pr diff", desc = "Show PR Diff" }, { "gpm", "Octo pr merge", desc = "Merge PR" }, -- Issue operations { "gil", "Octo issue list", desc = "List Issues" }, { "gic", "Octo issue create", desc = "Create Issue" }, { "gib", "Octo issue browser", desc = "Open Issue in Browser" }, -- Review operations { "grs", "Octo review start", desc = "Start Review" }, { "grr", "Octo review resume", desc = "Resume Review" }, { "grc", "Octo review submit", desc = "Submit Review" }, { "grd", "Octo review discard", desc = "Discard Review" }, }, }, -- Which-key group labels for git { "folke/which-key.nvim", opts = { spec = { { "gp", group = "pull requests" }, { "gi", group = "issues" }, { "gr", group = "review" }, }, }, }, }