local gs = require("gitsigns") gs.setup { signs = { add = { text = "+" }, change = { text = "~" }, delete = { text = "_" }, topdelete = { text = "‾" }, changedelete = { text = "|" }, }, word_diff = false, on_attach = function(bufnr) local function map(mode, l, r, opts) opts = opts or {} opts.buffer = bufnr vim.keymap.set(mode, l, r, opts) end map("n", "]c", function() if vim.wo.diff then return "]c" end vim.schedule(function() gs.next_hunk() end) return "" end, { expr = true, desc = "next hunk" }) map("n", "[c", function() if vim.wo.diff then return "[c" end vim.schedule(function() gs.prev_hunk() end) return "" end, { expr = true, desc = "previous hunk" }) map("n", "hp", gs.preview_hunk, { desc = "preview hunk" }) map("n", "hb", function() gs.blame_line { full = true } end, { desc = "blame hunk" }) end, } vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", callback = function() vim.cmd([[ hi GitSignsChangeInline gui=reverse hi GitSignsAddInline gui=reverse hi GitSignsDeleteInline gui=reverse ]]) end, })