summaryrefslogtreecommitdiff
path: root/lua/config/99-gitsigns-config.lua
diff options
context:
space:
mode:
authorJosh Rahm <rahm@josher.dev>2026-10-18 15:54:35 -0600
committerJosh Rahm <rahm@josher.dev>2026-10-18 15:54:35 -0600
commit457674c5b25b9f4be84f0f0ddf0cea7c1811174a (patch)
tree69ce27a62afabd7a3d66830201c4d2d40a28e500 /lua/config/99-gitsigns-config.lua
parent715fd8b957d7c553f2df3070b430784517fc78ae (diff)
downloadconfig.vim-457674c5b25b9f4be84f0f0ddf0cea7c1811174a.tar.gz
config.vim-457674c5b25b9f4be84f0f0ddf0cea7c1811174a.tar.bz2
config.vim-457674c5b25b9f4be84f0f0ddf0cea7c1811174a.zip
Redesign my vim config.
Now uses Lua primarily Breaks apart the configuration into rc-service style configuration files. Deletes a ton of the cruft with old LSP settings.
Diffstat (limited to 'lua/config/99-gitsigns-config.lua')
-rw-r--r--lua/config/99-gitsigns-config.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/lua/config/99-gitsigns-config.lua b/lua/config/99-gitsigns-config.lua
new file mode 100644
index 0000000..4687668
--- /dev/null
+++ b/lua/config/99-gitsigns-config.lua
@@ -0,0 +1,27 @@
+-- Adapted from the original init.vim; mappings are buffer-local.
+local gs = require('gitsigns')
+gs.setup({
+ on_attach = function(bufnr)
+ local function map(mode, lhs, rhs)
+ vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, silent = true })
+ end
+
+ map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
+ map('n', ']h', function()
+ if vim.wo.diff then vim.cmd.normal({ ']c', bang = true })
+ else gs.nav_hunk('next') end
+ end)
+ map('n', '[h', function()
+ if vim.wo.diff then vim.cmd.normal({ '[c', bang = true })
+ else gs.nav_hunk('prev') end
+ end)
+ map('n', '<leader>hs', gs.stage_hunk)
+ map('n', '<leader>hr', gs.reset_hunk)
+ map('v', '<leader>hs', function() gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end)
+ map('v', '<leader>hr', function() gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end)
+ map('n', '<leader>hS', gs.stage_buffer)
+ map('n', '<leader>hR', gs.reset_buffer)
+ map('n', '<leader>hp', gs.preview_hunk)
+ map('n', '<leader>hi', gs.preview_hunk_inline)
+ end,
+})