2021-12-23 23:13:45 +00:00
|
|
|
local gitsigns_status_ok, gitsigns = pcall(require, "gitsigns")
|
|
|
|
if not gitsigns_status_ok then
|
|
|
|
return
|
|
|
|
end
|
2021-11-17 09:00:00 +00:00
|
|
|
|
2021-12-23 23:13:45 +00:00
|
|
|
gitsigns.setup {
|
2021-11-17 09:00:00 +00:00
|
|
|
linehl = false,
|
|
|
|
numhl = true,
|
2023-01-23 18:12:25 +00:00
|
|
|
}
|
2021-11-17 09:00:00 +00:00
|
|
|
|
2023-08-10 23:26:36 +00:00
|
|
|
local bufnr = vim.api.nvim_get_current_buf()
|
|
|
|
|
2023-09-04 10:05:13 +00:00
|
|
|
local map = require("opdavies.keymap").map
|
|
|
|
local nmap = require("opdavies.keymap").nmap
|
|
|
|
local vmap = require("opdavies.keymap").vmap
|
2023-08-10 23:26:36 +00:00
|
|
|
|
2023-09-04 10:05:13 +00:00
|
|
|
nmap { "[h", "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", { expr = true, buffer = bufnr } }
|
|
|
|
nmap { "]h", "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", { expr = true, buffer = bufnr } }
|
2023-08-10 23:26:36 +00:00
|
|
|
|
2023-09-04 10:05:13 +00:00
|
|
|
nmap { "<leader>hR", gitsigns.reset_buffer }
|
|
|
|
nmap { "<leader>hS", gitsigns.stage_buffer }
|
|
|
|
nmap { "<leader>hp", gitsigns.preview_hunk }
|
|
|
|
nmap { "<leader>hr", gitsigns.reset_hunk }
|
|
|
|
nmap { "<leader>hs", gitsigns.stage_hunk }
|
|
|
|
nmap { "<leader>hu", gitsigns.undo_stage_hunk }
|
|
|
|
vmap {
|
|
|
|
"<leader>hr",
|
|
|
|
function()
|
|
|
|
gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" }
|
|
|
|
end,
|
|
|
|
}
|
|
|
|
vmap {
|
|
|
|
"<leader>hs",
|
|
|
|
function()
|
|
|
|
gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" }
|
|
|
|
end,
|
|
|
|
}
|
2023-08-10 23:26:36 +00:00
|
|
|
|
|
|
|
-- Text object.
|
2023-09-04 10:05:13 +00:00
|
|
|
map { { "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>" }
|