feat(neovim): extend gitsigns config
This commit is contained in:
parent
643c9a97b3
commit
765c538d9a
|
@ -1 +1,34 @@
|
||||||
require('gitsigns').setup()
|
-- TODO vim.keymap.set not yet supported on stable neovim
|
||||||
|
-- see gitsigns repo for sample when migrating to vim.keymap.set
|
||||||
|
|
||||||
|
require("gitsigns").setup {
|
||||||
|
on_attach = function(bufnr)
|
||||||
|
local function map(mode, lhs, rhs, opts)
|
||||||
|
opts = vim.tbl_extend('force', {noremap = true, silent = true}, opts or {})
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Navigation
|
||||||
|
map("n", "]c", "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", { expr = true })
|
||||||
|
map("n", "[c", "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", { expr = true })
|
||||||
|
|
||||||
|
-- Actions
|
||||||
|
map("n", "<leader>hs", ":Gitsigns stage_hunk<CR>")
|
||||||
|
map("v", "<leader>hs", ":Gitsigns stage_hunk<CR>")
|
||||||
|
map("n", "<leader>hr", ":Gitsigns reset_hunk<CR>")
|
||||||
|
map("v", "<leader>hr", ":Gitsigns reset_hunk<CR>")
|
||||||
|
map("n", "<leader>hS", "<cmd>Gitsigns stage_buffer<CR>")
|
||||||
|
map("n", "<leader>hu", "<cmd>Gitsigns undo_stage_hunk<CR>")
|
||||||
|
map("n", "<leader>hR", "<cmd>Gitsigns reset_buffer<CR>")
|
||||||
|
map("n", "<leader>hp", "<cmd>Gitsigns preview_hunk<CR>")
|
||||||
|
map("n", "<leader>hb", "<cmd>lua require'gitsigns'.blame_line{full=true}<CR>")
|
||||||
|
map("n", "<leader>tb", "<cmd>Gitsigns toggle_current_line_blame<CR>")
|
||||||
|
map("n", "<leader>hd", "<cmd>Gitsigns diffthis<CR>")
|
||||||
|
map("n", "<leader>hD", "<cmd>lua require'gitsigns'.diffthis('~')<CR>")
|
||||||
|
map("n", "<leader>td", "<cmd>Gitsigns toggle_deleted<CR>")
|
||||||
|
|
||||||
|
-- Text object
|
||||||
|
map("o", "ih", ":<C-U>Gitsigns select_hunk<CR>")
|
||||||
|
map("x", "ih", ":<C-U>Gitsigns select_hunk<CR>")
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue