diff options
| author | José Juan Loeza Sierra <jj@xz6ze.com> | 2025-11-08 08:14:00 -0800 |
|---|---|---|
| committer | José Juan Loeza Sierra <jj@xz6ze.com> | 2025-11-08 08:14:00 -0800 |
| commit | 4bafb41da640c06ce6e7412421bae726332037ee (patch) | |
| tree | 43df48d5d432490aea0d3d7f8672c92fb937880a /dot-config | |
| parent | e5fcbf2fe93f87cea277e101f4529c80aeaedcf2 (diff) | |
add gitsigns
Diffstat (limited to 'dot-config')
| -rw-r--r-- | dot-config/nvim/nvim-pack-lock.json | 4 | ||||
| -rw-r--r-- | dot-config/nvim/plugin/gitsigns.lua | 65 |
2 files changed, 69 insertions, 0 deletions
diff --git a/dot-config/nvim/nvim-pack-lock.json b/dot-config/nvim/nvim-pack-lock.json index f6b4679..593f3d8 100644 --- a/dot-config/nvim/nvim-pack-lock.json +++ b/dot-config/nvim/nvim-pack-lock.json @@ -12,6 +12,10 @@ "rev": "c106c94", "src": "https://github.com/projekt0n/github-nvim-theme" }, + "gitsigns.nvim": { + "rev": "20ad441", + "src": "https://github.com/lewis6991/gitsigns.nvim" + }, "hardtime.nvim": { "rev": "b4e4319", "src": "https://github.com/m4xshen/hardtime.nvim" diff --git a/dot-config/nvim/plugin/gitsigns.lua b/dot-config/nvim/plugin/gitsigns.lua new file mode 100644 index 0000000..5e5646f --- /dev/null +++ b/dot-config/nvim/plugin/gitsigns.lua @@ -0,0 +1,65 @@ +vim.pack.add({ + "https://github.com/lewis6991/gitsigns.nvim", +}) + +require("gitsigns").setup({ + -- signs copied from LazyVim + 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 = "▎" }, + }, +}) + +local gitsigns = require("gitsigns") + +-- Suggested keymap +-- see https://github.com/lewis6991/gitsigns.nvim?tab=readme-ov-file#-keymaps + +vim.keymap.set("n", "<leader>hs", gitsigns.stage_hunk) +vim.keymap.set("n", "<leader>hr", gitsigns.reset_hunk) + +vim.keymap.set("v", "<leader>hs", function() + gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) +end) + +vim.keymap.set("v", "<leader>hr", function() + gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) +end) + +vim.keymap.set("n", "<leader>hS", gitsigns.stage_buffer) +vim.keymap.set("n", "<leader>hR", gitsigns.reset_buffer) +vim.keymap.set("n", "<leader>hp", gitsigns.preview_hunk) +vim.keymap.set("n", "<leader>hi", gitsigns.preview_hunk_inline) + +vim.keymap.set("n", "<leader>hb", function() + gitsigns.blame_line({ full = true }) +end) + +vim.keymap.set("n", "<leader>hd", gitsigns.diffthis) + +vim.keymap.set("n", "<leader>hD", function() + gitsigns.diffthis("~") +end) + +vim.keymap.set("n", "<leader>hQ", function() + gitsigns.setqflist("all") +end) +vim.keymap.set("n", "<leader>hq", gitsigns.setqflist) + +-- Toggles +vim.keymap.set("n", "<leader>tb", gitsigns.toggle_current_line_blame) +vim.keymap.set("n", "<leader>tw", gitsigns.toggle_word_diff) + +-- Text object +vim.keymap.set({ "o", "x" }, "ih", gitsigns.select_hunk) |
