mirror of
https://github.com/jdhao/nvim-config.git
synced 2025-06-08 14:14:33 +02:00
Also tweak the highlight for word diff to make clear. The default highlgiht for word diff is TermCursor, which is unreadable.
56 lines
1.5 KiB
Lua
56 lines
1.5 KiB
Lua
local gs = require("gitsigns")
|
|
|
|
gs.setup {
|
|
signs = {
|
|
add = { hl = "GitSignsAdd", text = "+", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" },
|
|
change = { hl = "GitSignsChange", text = "~", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
|
delete = { hl = "GitSignsDelete", text = "_", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
|
topdelete = { hl = "GitSignsDelete", text = "‾", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
|
changedelete = { hl = "GitSignsChange", text = "│", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
|
},
|
|
word_diff = true,
|
|
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
|
|
|
|
-- Navigation
|
|
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" })
|
|
|
|
-- Actions
|
|
map("n", "<leader>hp", gs.preview_hunk)
|
|
map("n", "<leader>hb", function()
|
|
gs.blame_line { full = true }
|
|
end)
|
|
end,
|
|
}
|
|
|
|
vim.api.nvim_create_autocmd('ColorScheme', {
|
|
pattern = "*",
|
|
callback = function()
|
|
vim.cmd [[
|
|
hi GitSignsChangeInline guibg=fg guifg=bg
|
|
]]
|
|
end
|
|
})
|