Skip to content

Commit

Permalink
fix: gitsigns hl
Browse files Browse the repository at this point in the history
  • Loading branch information
willruggiano committed Jul 1, 2024
1 parent bb9b3d0 commit fd9e059
Showing 1 changed file with 40 additions and 46 deletions.
86 changes: 40 additions & 46 deletions plugins/gitsigns.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,58 +2,52 @@ return function()
local noremap = require("bombadil.lib.keymap").noremap
local nnoremap = require("bombadil.lib.keymap").nnoremap

require("gitsigns").setup {
signs = {
add = { hl = "GitSignsAdd", text = "+", numhl = "GitSignsAddNr" },
change = { hl = "GitSignsChange", text = "~", numhl = "GitSignsChangeNr" },
delete = { hl = "GitSignsDelete", text = "_", numhl = "GitSignsDeleteNr" },
topdelete = { hl = "GitSignsDelete", text = "", numhl = "GitSignsDeleteNr" },
changedelete = { hl = "GitSignsDelete", text = "~", numhl = "GitSignsChangeNr" },
},
local signs = {
add = { text = "+" },
change = { text = "~" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
}

numhl = false,
local function nav_hunk(g, d)
return function()
if vim.wo.diff then
return "]c"
end
vim.schedule(function()
g.nav_hunk(d, { navigation_message = false, target = "all" })
end)
return "<Ignore>"
end
end

require("gitsigns").setup {
signs = signs,
signs_staged = signs,
numhl = false,
on_attach = function(bufnr)
local gitsigns = package.loaded.gitsigns

-- Navigation
nnoremap("]c", function()
if vim.wo.diff then
return "]c"
end
vim.schedule(function()
gitsigns.next_hunk()
end)
return "<Ignore>"
end, { buffer = bufnr, expr = true, desc = "Next hunk" })
local g = package.loaded.gitsigns

nnoremap("[c", function()
if vim.wo.diff then
return "[c"
end
vim.schedule(function()
gitsigns.prev_hunk()
end)
return "<Ignore>"
end, { buffer = bufnr, expr = true, desc = "Previous hunk" })

-- Actions
nnoremap("]c", nav_hunk(g, "next"), { buffer = bufnr, expr = true, desc = "Next hunk" })
nnoremap("[c", nav_hunk(g, "prev"), { buffer = bufnr, expr = true, desc = "Previous hunk" })
noremap({ "n", "v" }, "<leader>hs", ":Gitsigns stage_hunk<CR>", { buffer = bufnr, desc = "Stage hunk" })
noremap({ "n", "v" }, "<leader>hr", ":Gitsigns reset_hunk<CR>", { buffer = bufnr, desc = "Reset hunk" })
nnoremap("<leader>hS", gitsigns.stage_buffer, { buffer = bufnr, desc = "Stage buffer" })
nnoremap("<leader>hu", gitsigns.undo_stage_hunk, { buffer = bufnr, desc = "Unstage hunk" })
nnoremap("<leader>hR", gitsigns.reset_buffer, { buffer = bufnr, desc = "Reset buffer" })
nnoremap("<leader>hp", gitsigns.preview_hunk, { buffer = bufnr, desc = "Preview hunk" })
nnoremap("<leader>hb", function()
gitsigns.blame_line { full = true }
end, { buffer = bufnr, desc = "Blame line" })
nnoremap("<leader>tb", gitsigns.toggle_current_line_blame, { buffer = bufnr, desc = "Toggle line blame" })
nnoremap("<leader>hd", gitsigns.diffthis, { buffer = bufnr, desc = "Diff this" })
nnoremap("<leader>hD", function()
gitsigns.diffthis "~"
end, { buffer = bufnr, desc = "Diff this" })
nnoremap("<leader>td", gitsigns.toggle_deleted) -- Text object
noremap({ "o", "x" }, "ih", ":<c-u>Gitsigns select_hunk<cr>", { buffer = bufnr, desc = "hunk" })
nnoremap("<leader>hS", g.stage_buffer, { buffer = bufnr, desc = "Stage buffer" })
nnoremap("<leader>hu", g.undo_stage_hunk, { buffer = bufnr, desc = "Unstage hunk" })
nnoremap("<leader>hR", g.reset_buffer, { buffer = bufnr, desc = "Reset buffer" })
nnoremap("<leader>hp", g.preview_hunk, { buffer = bufnr, desc = "Preview hunk" })
nnoremap("<leader>hb", g.blame_line, { buffer = bufnr, desc = "Blame line" })
nnoremap("<leader>hB", function()
g.blame_line { full = true }
end, { buffer = bufnr, desc = "Blame line (preview)" })
noremap({ "o", "x" }, "ah", g.select_hunk, { buffer = bufnr, desc = "hunk" })
end,
}

-- Not sure where these come from but they ugly :/
local hi = require("flavours").highlight
hi.Added = "DiffAdd"
hi.Changed = "DiffChange"
hi.Removed = "DiffDelete"
end

0 comments on commit fd9e059

Please sign in to comment.