mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 14:49:14 +00:00
52 lines
1.7 KiB
Lua
52 lines
1.7 KiB
Lua
require("gitsigns").setup {
|
|
sign_priority = 8,
|
|
on_attach = function(bufnr)
|
|
local gitsigns = package.loaded.gitsigns
|
|
|
|
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
|
|
vim.cmd.normal { "]c", bang = true }
|
|
else
|
|
gitsigns.nav_hunk("next")
|
|
end
|
|
end)
|
|
|
|
map("n", "[c", function()
|
|
if vim.wo.diff then
|
|
vim.cmd.normal { "[c", bang = true }
|
|
else
|
|
gitsigns.nav_hunk("prev")
|
|
end
|
|
end)
|
|
|
|
-- Actions
|
|
map("n", "<leader>hs", gitsigns.stage_hunk)
|
|
map("n", "<leader>hu", gitsigns.undo_stage_hunk)
|
|
map("n", "<leader>hr", gitsigns.reset_hunk)
|
|
|
|
map("v", "<leader>hs", function() gitsigns.stage_hunk { vim.fn.line("."), vim.fn.line("v") } end)
|
|
map("v", "<leader>hr", function() gitsigns.reset_hunk { vim.fn.line("."), vim.fn.line("v") } end)
|
|
|
|
map("n", "<leader>hS", gitsigns.stage_buffer)
|
|
map("n", "<leader>hR", gitsigns.reset_buffer)
|
|
|
|
map("n", "<leader>hp", gitsigns.preview_hunk)
|
|
map("n", "<leader>hb", function() gitsigns.blame_line { full = true } end)
|
|
map("n", "<leader>tb", gitsigns.toggle_current_line_blame)
|
|
|
|
map("n", "<leader>hd", gitsigns.diffthis)
|
|
map("n", "<leader>hD", function() gitsigns.diffthis("~") end)
|
|
|
|
map("n", "<leader>td", gitsigns.toggle_deleted)
|
|
|
|
-- Text object
|
|
map({ "o", "x" }, "ih", gitsigns.select_hunk)
|
|
end,
|
|
}
|