local gitsigns_status_ok, gitsigns = pcall(require, "gitsigns") if not gitsigns_status_ok then return end gitsigns.setup { linehl = false, numhl = true, } local bufnr = vim.api.nvim_get_current_buf() local map = require("opdavies.keymap").map local nmap = require("opdavies.keymap").nmap local vmap = require("opdavies.keymap").vmap nmap { "[h", "&diff ? '[c' : 'Gitsigns prev_hunk'", { expr = true, buffer = bufnr } } nmap { "]h", "&diff ? ']c' : 'Gitsigns next_hunk'", { expr = true, buffer = bufnr } } nmap { "hR", gitsigns.reset_buffer } nmap { "hS", gitsigns.stage_buffer } nmap { "hp", gitsigns.preview_hunk } nmap { "hr", gitsigns.reset_hunk } nmap { "hs", gitsigns.stage_hunk } nmap { "hu", gitsigns.undo_stage_hunk } vmap { "hr", function() gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" } end, } vmap { "hs", function() gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" } end, } -- Text object. map { { "o", "x" }, "ih", ":Gitsigns select_hunk" }