You've already forked dotfiles
configurations and using newer built-in functionality in the 0.12.x versions of Neovim. Further work is needed for treesitter updates, cleanup of the conversion work and testing to verify old functionality isn't lessened to get the benefits of a cleaner config and vastly faster load times.
53 lines
1.9 KiB
Lua
53 lines
1.9 KiB
Lua
vim.pack.add({
|
|
'https://github.com/lewis6991/gitsigns.nvim'
|
|
})
|
|
|
|
require('gitsigns').setup {
|
|
on_attach = function(bufnr)
|
|
local gitsigns = require('gitsigns')
|
|
|
|
-- TODO: Move to custom functions?
|
|
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)
|
|
|
|
-- Actions
|
|
map('n', '<leader>gs', gitsigns.stage_hunk)
|
|
map('n', '<leader>gu', gitsigns.undo_stage_hunk)
|
|
map('n', '<leader>gr', gitsigns.reset_hunk)
|
|
map('v', '<leader>gs', function() gitsigns.stage_hunk { vim.fn.line('.'), vim.fn.line('v') } end)
|
|
map('v', '<leader>gu', function() gitsigns.undo_stage_hunk { vim.fn.line('.'), vim.fn.line('v') } end)
|
|
map('v', '<leader>gr', function() gitsigns.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end)
|
|
map('n', '<leader>gS', gitsigns.stage_buffer)
|
|
map('n', '<leader>gR', gitsigns.reset_buffer)
|
|
map('n', '<leader>gp', gitsigns.preview_hunk)
|
|
map('n', '<leader>gb', function() gitsigns.blame_line { full = true } end)
|
|
map('n', '<leader>gtb', gitsigns.toggle_current_line_blame)
|
|
map('n', '<leader>gd', gitsigns.diffthis)
|
|
map('n', '<leader>gD', function() gitsigns.diffthis('~') end)
|
|
map('n', '<leader>gtd', gitsigns.toggle_deleted)
|
|
|
|
-- Text object
|
|
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
|
end
|
|
}
|