summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua44
1 files changed, 13 insertions, 31 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua b/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua
index 36d9ab5..267d0a4 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/gitsigns.lua
@@ -15,11 +15,13 @@ local M = {
on_attach = function(bufnr)
local with_range = function(callback)
return function()
- callback(function()
- local start_pos = vim.fn.getpos("v")
- local end_pos = vim.fn.getcurpos()
- return { start_pos[2], end_pos[2] }
- end)
+ local cursor = vim.fn.getpos(".")
+ local visual = vim.fn.getpos("v")
+ if cursor == visual then
+ callback()
+ else
+ callback({ cursor[2], visual[2] })
+ end
end
end
@@ -57,18 +59,18 @@ local M = {
buffer = bufnr,
})
- vim.keymap.set("n", "<leader>gp", require("gitsigns").preview_hunk, {
- desc = "preview hunk",
+ vim.keymap.set({ "n", "v" }, "<leader>gr", with_range(require("gitsigns").reset_hunk), {
+ desc = "reset hunk",
buffer = bufnr,
})
- vim.keymap.set("n", "<leader>gr", require("gitsigns").reset_hunk, {
- desc = "reset hunk",
+ vim.keymap.set({ "n", "v" }, "<leader>gs", with_range(require("gitsigns").stage_hunk), {
+ desc = "stage hunk",
buffer = bufnr,
})
- vim.keymap.set("n", "<leader>gs", require("gitsigns").stage_hunk, {
- desc = "stage hunk",
+ vim.keymap.set({ "n", "v" }, "<leader>gp", with_range(require("gitsigns").preview_hunk), {
+ desc = "preview hunk",
buffer = bufnr,
})
@@ -92,26 +94,6 @@ local M = {
buffer = bufnr,
})
- vim.keymap.set("v", "<leader>gr", with_range(require("gitsigns").reset_hunk), {
- desc = "reset hunk",
- buffer = bufnr,
- })
-
- vim.keymap.set("v", "<leader>gs", with_range(require("gitsigns").stage_hunk), {
- desc = "stage hunk",
- buffer = bufnr,
- })
-
- vim.keymap.set("v", "<leader>gu", with_range(require("gitsigns").undo_stage_hunk), {
- desc = "unstage hunk",
- buffer = bufnr,
- })
-
- vim.keymap.set("v", "<leader>gp", with_range(require("gitsigns").preview_hunk), {
- desc = "preview hunk",
- buffer = bufnr,
- })
-
vim.api.nvim_exec_autocmds("User", { pattern = "GitAttach", data = { buf = bufnr } })
end,
},