return { { "tanvirtin/vgit.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons" }, -- Lazy loading on 'VimEnter' event is necessary. event = "VimEnter", config = function() require("vgit").setup( -- keymaps = { -- ["n "] = { -- function() -- require("vgit").hunk_up() -- end, -- desc = "VGit Hunk Up", -- }, -- ["n "] = { -- function() -- require("vgit").hunk_down() -- end, -- desc = "VGit Hunk Down", -- }, -- ["n gs"] = { -- function() -- require("vgit").buffer_hunk_stage() -- end, -- desc = "VGit Stage Hunk", -- }, -- ["n gr"] = { -- function() -- require("vgit").buffer_hunk_reset() -- end, -- desc = "VGit Reset Hunk", -- }, -- ["n gp"] = { -- function() -- require("vgit").buffer_hunk_preview() -- end, -- desc = "VGit Preview Hunk", -- }, -- ["n gb"] = { -- function() -- require("vgit").buffer_blame_preview() -- end, -- desc = "VGit Blame Preview", -- }, -- ["n gf"] = { -- function() -- require("vgit").buffer_diff_preview() -- end, -- desc = "VGit Diff Preview", -- }, -- ["n gh"] = { -- function() -- require("vgit").buffer_history_preview() -- end, -- desc = "VGit History Preview", -- }, -- ["n gu"] = { -- function() -- require("vgit").buffer_reset() -- end, -- desc = "VGit Reset Buffer", -- }, -- ["n gcm"] = { -- function() -- require("vgit").project_commit_preview() -- end, -- desc = "VGit Commit Preview", -- }, -- ["n gcc"] = { -- function() -- require("vgit").project_commits_preview() -- end, -- desc = "VGit Commits Preview", -- }, -- ["n gcl"] = { -- function() -- require("vgit").project_logs_preview() -- end, -- desc = "VGit Logs Preview", -- }, -- ["n gd"] = { -- function() -- require("vgit").project_diff_preview() -- end, -- desc = "VGit Project Diff", -- }, -- ["n gx"] = { -- function() -- require("vgit").toggle_diff_preference() -- end, -- desc = "VGit Toggle Diff Preference", -- }, -- }, ) end, vim.keymap.set("n", "", function() require("vgit").hunk_up() end, { desc = "VGit Hunk Up" }), vim.keymap.set("n", "", function() require("vgit").hunk_down() end, { desc = "VGit Hunk Down" }), vim.keymap.set("n", "gs", function() require("vgit").buffer_hunk_stage() end, { desc = "VGit Stage Hunk" }), vim.keymap.set("n", "gr", function() require("vgit").buffer_hunk_reset() end, { desc = "VGit Reset Hunk" }), vim.keymap.set("n", "gp", function() require("vgit").buffer_hunk_preview() end, { desc = "VGit Preview Hunk" }), vim.keymap.set("n", "gb", function() require("vgit").buffer_blame_preview() end, { desc = "VGit Blame Preview" }), vim.keymap.set("n", "gf", function() require("vgit").buffer_diff_preview() end, { desc = "VGit Diff Preview" }), vim.keymap.set("n", "gh", function() require("vgit").buffer_history_preview() end, { desc = "VGit History Preview" }), vim.keymap.set("n", "gu", function() require("vgit").buffer_reset() end, { desc = "VGit Reset Buffer" }), vim.keymap.set("n", "gcm", function() require("vgit").project_commit_preview() end, { desc = "VGit Commit Preview" }), vim.keymap.set("n", "gcc", function() require("vgit").project_commits_preview() end, { desc = "VGit Commits Preview" }), vim.keymap.set("n", "gcl", function() require("vgit").project_logs_preview() end, { desc = "VGit Logs Preview" }), vim.keymap.set("n", "gd", function() require("vgit").project_diff_preview() end, { desc = "VGit Project Diff" }), vim.keymap.set("n", "gx", function() require("vgit").toggle_diff_preference() end, { desc = "VGit Toggle Diff Preference" }), }, { "lewis6991/gitsigns.nvim", opts = { signs = { add = { text = "┃" }, change = { text = "┃" }, delete = { text = "_" }, topdelete = { text = "‾" }, changedelete = { text = "~" }, untracked = { text = "┆" }, }, signs_staged = { add = { text = "┃" }, change = { text = "┃" }, delete = { text = "_" }, topdelete = { text = "‾" }, changedelete = { text = "~" }, untracked = { text = "┆" }, }, signs_staged_enable = true, signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` numhl = true, -- Toggle with `:Gitsigns toggle_numhl` linehl = true, -- Toggle with `:Gitsigns toggle_linehl` word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` watch_gitdir = { follow_files = true, }, auto_attach = true, attach_to_untracked = false, current_line_blame = true, -- Toggle with `:Gitsigns toggle_current_line_blame` current_line_blame_opts = { virt_text = true, virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align' delay = 300, ignore_whitespace = true, virt_text_priority = 100, }, current_line_blame_formatter = ", - ", sign_priority = 6, update_debounce = 100, status_formatter = nil, -- Use default max_file_length = 40000, -- Disable if file is longer than this (in lines) preview_config = { -- Options passed to nvim_open_win border = "single", style = "minimal", relative = "cursor", row = 0, col = 1, }, vim.keymap.set("n", "gr", "Gitsigns refresh", { desc = "Gitsigns Refresh" }), vim.keymap.set("n", "gs", "Gitsigns toggle_signs", { desc = "Gitsigns ToggleSigns" }), vim.keymap.set("n", "gl", "Gitsigns toggle_linehl", { desc = "Gitsigns ToggleLine" }), vim.keymap.set("n", "gw", "Gitsigns toggle_word_diff", { desc = "Gitsigns ToggleWord" }), }, }, }