-- https://github.com/lewis6991/gitsigns.nvim local function setup() require("gitsigns").setup({ on_attach = function (bufnr) local gs = package.loaded.gitsigns vim.keymap.set("n", "gv", gs.select_hunk, { buffer = bufnr, }) vim.keymap.set("n", "gs", gs.stage_hunk, { buffer = bufnr, }) vim.keymap.set("x", "gs", function () gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v"), }) end, { buffer = bufnr, }) vim.keymap.set({ "n", "x", }, "gu", gs.undo_stage_hunk, { buffer = bufnr, }) vim.keymap.set("n", "gr", gs.reset_hunk, { buffer = bufnr, }) vim.keymap.set( "x", "gr", ":Gitsigns reset_hunk", { buffer = bufnr, } ) vim.keymap.set("n", "g?", gs.preview_hunk, { buffer = bufnr, }) vim.keymap.set( "n", "gb", function () gs.blame_line { full = true, ignore_whitespace = true, } end, { buffer = bufnr, }) vim.keymap.set({ "n", "x", }, "]g", function () gs.next_hunk({ wrap = true, navigation_message = true, foldopen = true, preview = true, }) end) vim.keymap.set({ "n", "x", }, "[g", function () gs.prev_hunk({ wrap = true, navigation_message = true, foldopen = true, preview = true, }) end) end, signs = { untracked = { text = "│", }, }, }) end return setup