aboutsummaryrefslogtreecommitdiff
path: root/nvim/.config/nvim/lua/plugins/gitsigns.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/.config/nvim/lua/plugins/gitsigns.lua')
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/lua/plugins/gitsigns.lua130
1 files changed, 74 insertions, 56 deletions
diff --git a/nvim/.config/nvim/lua/plugins/gitsigns.lua b/nvim/.config/nvim/lua/plugins/gitsigns.lua
index 8856fae..8b99647 100644..100755
--- a/nvim/.config/nvim/lua/plugins/gitsigns.lua
+++ b/nvim/.config/nvim/lua/plugins/gitsigns.lua
@@ -1,65 +1,83 @@
-return {
- "lewis6991/gitsigns.nvim",
- config = function()
+require("gitsigns").setup {
+ signs = {
+ add = { text = "┃" },
+ change = { text = "┃" },
+ delete = { text = "_" },
+ topdelete = { text = "‾" },
+ changedelete = { text = "~" },
+ untracked = { text = "┆" },
+ },
+ signs_staged = {
+ add = { text = "┃" },
+ change = { text = "┃" },
+ delete = { text = "_" },
+ topdelete = { text = "‾" },
+ changedelete = { text = "~" },
+ untracked = { text = "┆" },
+ },
+ on_attach = function(bufnr)
local gitsigns = require "gitsigns"
- local on_attach = function(bufnr)
- local function map(mode, l, r, opts)
- opts = opts or {}
- opts.buffer = bufnr
- vim.keymap.set(mode, l, r, opts)
+ 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)
- -- Navigation
- map("n", "]c", function()
- if vim.wo.diff then
- vim.cmd.normal { "]c", bang = true }
- else
- gitsigns.nav_hunk "next"
- end
- end)
+ -- Actions
+ map("n", "<leader>gs", gitsigns.stage_hunk, { desc = "Stage hunk" })
+ map("n", "<leader>gr", gitsigns.reset_hunk, { desc = "Reset hunk" })
- map("n", "[c", function()
- if vim.wo.diff then
- vim.cmd.normal { "[c", bang = true }
- else
- gitsigns.nav_hunk "prev"
- end
- end)
+ map("v", "<leader>gs", function()
+ gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" }
+ end)
- -- Actions
- map("n", "<leader>gs", gitsigns.stage_hunk, { desc = "Stage hunk" })
- map("n", "<leader>gr", gitsigns.reset_hunk, { desc = "Reset hunk" })
- map("v", "<leader>gs", function()
- gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" }
- end, { desc = "Stage hunk" })
- map("v", "<leader>gr", function()
- gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" }
- end, { desc = "Reset hunk" })
- map("n", "<leader>gS", gitsigns.stage_buffer, { desc = "Stage buffer" })
- map("n", "<leader>gu", gitsigns.undo_stage_hunk, { desc = "Undo stage hunk" })
- map("n", "<leader>gR", gitsigns.reset_buffer, { desc = "Reset buffer" })
- map("n", "<leader>gp", gitsigns.preview_hunk, { desc = "Preview hunk" })
- map("n", "<leader>gb", function()
- gitsigns.blame_line { full = true }
- end, { desc = "Blame line" })
- map("n", "<leader>Tb", gitsigns.toggle_current_line_blame, { desc = "Toggle blame line" })
- map("n", "<leader>Td", gitsigns.toggle_deleted, { desc = "Toggle deleted" })
- map("n", "<leader>gd", gitsigns.diffthis, { desc = "Diff this" })
- map("n", "<leader>gD", function()
- gitsigns.diffthis "~"
- end, { desc = "Diff this ~" })
- end
+ map("v", "<leader>gr", function()
+ gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" }
+ end)
+
+ map("n", "<leader>gS", gitsigns.stage_buffer, { desc = "Stage buffer" })
+ map("n", "<leader>gR", gitsigns.reset_buffer, { desc = "Reset buffer" })
+ map("n", "<leader>gp", gitsigns.preview_hunk, { desc = "Preview hunk" })
+ map("n", "<leader>gi", gitsigns.preview_hunk_inline, { desc = "Preview hunk inline" })
+
+ map("n", "<leader>gb", function()
+ gitsigns.blame_line { full = true }
+ end, { desc = "Blame line full" })
+
+ map("n", "<leader>gd", gitsigns.diffthis, { desc = "Diff" })
+
+ map("n", "<leader>gD", function()
+ gitsigns.diffthis "~"
+ end, { desc = "Diff ~" })
+
+ map("n", "<leader>gQ", function()
+ gitsigns.setqflist "all"
+ end, { desc = "Setqflist all" })
+ map("n", "<leader>gq", gitsigns.setqflist, { desc = "Setqflist" })
+
+ -- Toggles
+ map("n", "<leader>tb", gitsigns.toggle_current_line_blame, { desc = "Toggle current line blame" })
+ map("n", "<leader>tw", gitsigns.toggle_word_diff, { desc = "Toggle word diff" })
- gitsigns.setup {
- signs = {
- add = { text = "+" },
- change = { text = "~" },
- delete = { text = "_" },
- topdelete = { text = "‾" },
- changedelete = { text = "~" },
- },
- on_attach = on_attach,
- }
+ -- Text object
+ map({ "o", "x" }, "ih", gitsigns.select_hunk, { desc = "Select hunk" })
end,
}