aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--nvim/.config/nvim/lua/plugins/gitsigns.lua52
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils.lua6
2 files changed, 32 insertions, 26 deletions
diff --git a/nvim/.config/nvim/lua/plugins/gitsigns.lua b/nvim/.config/nvim/lua/plugins/gitsigns.lua
index 36dd1d6..9aa2522 100644
--- a/nvim/.config/nvim/lua/plugins/gitsigns.lua
+++ b/nvim/.config/nvim/lua/plugins/gitsigns.lua
@@ -14,38 +14,46 @@ local M = {
},
preview_config = { border = "single" },
on_attach = function(bufnr)
- local with_range = function(callback)
- return function()
- if vim.fn.mode():lower() == "v" then
- local cursor = vim.fn.getpos(".") --[[@as integer[] ]]
- local visual = vim.fn.getpos("v") --[[@as integer[] ]]
- callback({ cursor[2], visual[2] })
- else
- callback()
- end
- end
- end
-
- vim.keymap.set("n", "<leader>gb", require("gitsigns").blame_line, { desc = "show blame", buffer = bufnr })
-
vim.keymap.set("n", "]c", function()
- return require("gitsigns").nav_hunk("next", { preview = true })
+ if vim.wo.diff then
+ return "]c"
+ else
+ return [[<Cmd>lua require("gitsigns').nav_hunk("next", { preview = true })<CR>]]
+ end
end, { expr = true, desc = "next hunk", buffer = bufnr })
vim.keymap.set("n", "[c", function()
- return require("gitsigns").nav_hunk("prev", { preview = true })
- end, { expr = true, desc = "previous hunk", buffer = bufnr })
+ if vim.wo.diff then
+ return "[c"
+ else
+ return [[<Cmd>lua require("gitsigns").nav_hunk("prev", { preview = true })<CR>]]
+ end
+ end, {
+ expr = true,
+ desc = "previous hunk",
+ buffer = bufnr,
+ })
- vim.keymap.set("n", "<leader>gB", function()
- require("gitsigns").blame_line({ full = true })
- end, { desc = "show blame", buffer = bufnr })
+ vim.keymap.set("n", "<leader>gr", require("gitsigns").reset_hunk, {
+ desc = "reset hunk",
+ buffer = bufnr,
+ })
- vim.keymap.set({ "n", "v" }, "<leader>gr", with_range(require("gitsigns").reset_hunk), {
+ vim.keymap.set("v", "<leader>gr", function()
+ require("gitsigns").reset_hunk({ vim.fn.getpos(".")[2], vim.fn.getpos("v")[2] })
+ end, {
desc = "reset hunk",
buffer = bufnr,
})
- vim.keymap.set({ "n", "v" }, "<leader>gs", with_range(require("gitsigns").stage_hunk), {
+ vim.keymap.set("n", "<leader>gs", require("gitsigns").stage_hunk, {
+ desc = "stage hunk",
+ buffer = bufnr,
+ })
+
+ vim.keymap.set("v", "<leader>gs", function()
+ require("gitsigns").stage_hunk({ vim.fn.getpos(".")[2], vim.fn.getpos("v")[2] })
+ end, {
desc = "stage hunk",
buffer = bufnr,
})
diff --git a/nvim/.config/nvim/lua/tobyvin/utils.lua b/nvim/.config/nvim/lua/tobyvin/utils.lua
index bf2d5b2..0c2a316 100644
--- a/nvim/.config/nvim/lua/tobyvin/utils.lua
+++ b/nvim/.config/nvim/lua/tobyvin/utils.lua
@@ -91,12 +91,10 @@ function M.extend_hl(ns, name, ...)
for _, arg in pairs({ ... }) do
local hl_name_or_val, hl_ns, hl_val
- if
- vim.tbl_islist(arg --[[@as table]])
- then
+ if type(arg) ~= "string" and vim.islist(arg) then
hl_ns, hl_name_or_val = arg[1], arg[2]
else
- hl_ns, hl_name_or_val = ns, arg --[[@as string|table]]
+ hl_ns, hl_name_or_val = ns, arg
end
if type(hl_name_or_val) == "string" then