diff options
author | Minijackson <minijackson@riseup.net> | 2023-06-21 14:51:51 +0200 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2023-06-21 14:51:51 +0200 |
commit | 9c8121916cd7acb8a3d9059bef9f5720a0edd9a3 (patch) | |
tree | 6209e30428d5e377d8680f56227cacd97dd65d16 /dotfiles | |
parent | 703f8cd6bc60e5d77fc8dbfc405544988e5c14df (diff) | |
download | nixos-config-reborn-9c8121916cd7acb8a3d9059bef9f5720a0edd9a3.tar.gz nixos-config-reborn-9c8121916cd7acb8a3d9059bef9f5720a0edd9a3.zip |
vim: new way of adding keymaps for gitsigns.nvim
Diffstat (limited to 'dotfiles')
-rw-r--r-- | dotfiles/vim/lua/myConfig.lua | 62 |
1 files changed, 43 insertions, 19 deletions
diff --git a/dotfiles/vim/lua/myConfig.lua b/dotfiles/vim/lua/myConfig.lua index 3dc45ce..65753ea 100644 --- a/dotfiles/vim/lua/myConfig.lua +++ b/dotfiles/vim/lua/myConfig.lua | |||
@@ -160,25 +160,49 @@ end, mapopts) | |||
160 | -- Gitsigns | 160 | -- Gitsigns |
161 | 161 | ||
162 | require("gitsigns").setup { | 162 | require("gitsigns").setup { |
163 | keymaps = { | 163 | on_attach = function(bufnr) |
164 | noremap = true, | 164 | local gs = package.loaded.gitsigns |
165 | buffer = true, | 165 | |
166 | silent = true, | 166 | local function map(mode, l, r, opts) |
167 | 167 | opts = vim.tbl_extend("force", { | |
168 | ["n ]c"] = { expr = true, "&diff ? ']c' : '<cmd>lua require\"gitsigns\".next_hunk()<CR>'" }, | 168 | noremap = true, |
169 | ["n [c"] = { expr = true, "&diff ? '[c' : '<cmd>lua require\"gitsigns\".prev_hunk()<CR>'" }, | 169 | buffer = buffnr, |
170 | 170 | silent = true, | |
171 | ["n <leader>hs"] = '<cmd>lua require"gitsigns".stage_hunk()<CR>', | 171 | }, opts or {}) |
172 | ["n <leader>hu"] = '<cmd>lua require"gitsigns".undo_stage_hunk()<CR>', | 172 | vim.keymap.set(mode, l, r, opts) |
173 | ["n <leader>hr"] = '<cmd>lua require"gitsigns".reset_hunk()<CR>', | 173 | end |
174 | ["n <leader>hR"] = '<cmd>lua require"gitsigns".reset_buffer()<CR>', | 174 | |
175 | ["n <leader>hp"] = '<cmd>lua require"gitsigns".preview_hunk()<CR>', | 175 | -- Navigation |
176 | ["n <leader>hb"] = '<cmd>lua require"gitsigns".blame_line()<CR>', | 176 | map('n', ']c', function() |
177 | 177 | if vim.wo.diff then return ']c' end | |
178 | -- Text objects | 178 | vim.schedule(function() gs.next_hunk() end) |
179 | ["o ih"] = ':<C-U>lua require"gitsigns".select_hunk()<CR>', | 179 | return '<Ignore>' |
180 | ["x ih"] = ':<C-U>lua require"gitsigns".select_hunk()<CR>', | 180 | end, { expr = true }) |
181 | }, | 181 | |
182 | map('n', '[c', function() | ||
183 | if vim.wo.diff then return '[c' end | ||
184 | vim.schedule(function() gs.prev_hunk() end) | ||
185 | return '<Ignore>' | ||
186 | end, { expr = true }) | ||
187 | |||
188 | -- Actions | ||
189 | map('n', '<leader>hs', gs.stage_hunk, { desc = "Stage Hunk" }) | ||
190 | map('n', '<leader>hr', gs.reset_hunk, { desc = "reset Hunk" }) | ||
191 | map('v', '<leader>hs', function() gs.stage_hunk { vim.fn.line('.'), vim.fn.line('v') } end, { desc = "Stage hunk" }) | ||
192 | map('v', '<leader>hr', function() gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end, { desc = "Reset hunk" }) | ||
193 | map('n', '<leader>hS', gs.stage_buffer, { desc = "Stage buffer" }) | ||
194 | map('n', '<leader>hu', gs.undo_stage_hunk, { desc = "Undo stage hunk" }) | ||
195 | map('n', '<leader>hR', gs.reset_buffer, { desc = "Reset buffer" }) | ||
196 | map('n', '<leader>hp', gs.preview_hunk, { desc = "Preview hunk" }) | ||
197 | map('n', '<leader>hb', function() gs.blame_line { full = true } end, { desc = "Blame line" }) | ||
198 | map('n', '<leader>tb', gs.toggle_current_line_blame, { desc = "Toggle current line blame" }) | ||
199 | map('n', '<leader>hd', gs.diffthis, { desc = "Diff this" }) | ||
200 | map('n', '<leader>hD', function() gs.diffthis('~') end, { desc = "Diff this against ~" }) | ||
201 | map('n', '<leader>td', gs.toggle_deleted, { desc = "Toggle deleted" }) | ||
202 | |||
203 | -- Text object | ||
204 | map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = "Select hunk" }) | ||
205 | end, | ||
182 | } | 206 | } |
183 | 207 | ||
184 | -- Treesitter | 208 | -- Treesitter |