56 lines
1.3 KiB
Lua
56 lines
1.3 KiB
Lua
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 "<Ignore>"
|
|
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 "<Ignore>"
|
|
end, { expr = true, desc = "previous hunk" })
|
|
|
|
map("n", "<leader>hp", gs.preview_hunk, { desc = "preview hunk" })
|
|
map("n", "<leader>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,
|
|
})
|