diff options
| author | Trey Bastian <hello@treybastian.com> | 2026-06-06 11:58:24 +0100 |
|---|---|---|
| committer | Trey Bastian <hello@treybastian.com> | 2026-06-06 11:58:24 +0100 |
| commit | b40f3e3dc774fbd445b44d15c43810ebd74023cc (patch) | |
| tree | a8589cc374410b0f136aa501741a7bf42bc5d7cc /lua | |
| parent | 25a0b6eb45d9fa42cfdcf01e2a1a6fea0d4f9635 (diff) | |
added gitsigns
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/config/git.lua | 64 |
1 files changed, 63 insertions, 1 deletions
diff --git a/lua/config/git.lua b/lua/config/git.lua index 41b4f5a..eaaa57e 100644 --- a/lua/config/git.lua +++ b/lua/config/git.lua @@ -1,5 +1,67 @@ vim.pack.add({ - "https://github.com/tpope/vim-fugitive", + "https://github.com/lewis6991/gitsigns.nvim", +}) + +require("gitsigns").setup({ + on_attach = function(bufnr) + local gitsigns = require("gitsigns") + + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + 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) + + map("n", "<leader>hs", gitsigns.stage_hunk) + map("n", "<leader>hr", gitsigns.reset_hunk) + + map("v", "<leader>hs", function() + gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) + end) + + map("v", "<leader>hr", function() + gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) + end) + + map("n", "<leader>hS", gitsigns.stage_buffer) + map("n", "<leader>hR", gitsigns.reset_buffer) + map("n", "<leader>hp", gitsigns.preview_hunk) + map("n", "<leader>hi", gitsigns.preview_hunk_inline) + + map("n", "<leader>hb", function() + gitsigns.blame_line({ full = true }) + end) + + map("n", "<leader>hd", gitsigns.diffthis) + + map("n", "<leader>hD", function() + gitsigns.diffthis("~") + end) + + map("n", "<leader>hQ", function() + gitsigns.setqflist("all") + end) + map("n", "<leader>hq", gitsigns.setqflist) + + map("n", "<leader>tb", gitsigns.toggle_current_line_blame) + map("n", "<leader>tw", gitsigns.toggle_word_diff) + end, }) local lazygit_buf = nil |
