pkg(nixvim): Add gitsigns plugin
This commit is contained in:
parent
9238672dad
commit
d794974e0c
2 changed files with 97 additions and 3 deletions
|
|
@ -6,9 +6,6 @@
|
|||
# flash = {
|
||||
# enable = true;
|
||||
# };
|
||||
# gitsigns = {
|
||||
# enable = true;
|
||||
# };
|
||||
# trouble = {
|
||||
# enable = true;
|
||||
# };
|
||||
|
|
|
|||
97
pkgs/nixvim/editor/gitsigns.nix
Normal file
97
pkgs/nixvim/editor/gitsigns.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{...}: {
|
||||
youthlic.plugins.gitsigns = {
|
||||
enable = true;
|
||||
luaConfig.post =
|
||||
#lua
|
||||
''
|
||||
_M.on_load("snacks", function()
|
||||
vim.schedule(function()
|
||||
Snacks.toggle({
|
||||
name = "Git Signs",
|
||||
get = function()
|
||||
return require("gitsigns.config").config.signcolumn
|
||||
end,
|
||||
set = function(state)
|
||||
require("gitsigns").toggle_signs(state)
|
||||
end,
|
||||
}):map("<leader>uG")
|
||||
end)
|
||||
end)
|
||||
'';
|
||||
settings = {
|
||||
current_line_blame = true;
|
||||
signcolumn = true;
|
||||
numhl = true;
|
||||
linehl = false;
|
||||
signs = {
|
||||
add = {text = "┃";};
|
||||
change = {text = "┃";};
|
||||
delete = {text = "";};
|
||||
topdelete = {text = "";};
|
||||
changedelete = {text = "┃";};
|
||||
untracked = {text = "┃";};
|
||||
};
|
||||
signs_staged = {
|
||||
add = {text = "┃";};
|
||||
change = {text = "┃";};
|
||||
delete = {text = "";};
|
||||
topdelete = {text = "";};
|
||||
changedelete = {text = "┃";};
|
||||
};
|
||||
on_attach = {
|
||||
__raw =
|
||||
#lua
|
||||
''
|
||||
function(buffer)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local map = function(mode, l, r, desc)
|
||||
vim.keymap.set(mode, l, r, {
|
||||
buffer = buffer,
|
||||
desc = desc,
|
||||
})
|
||||
end
|
||||
|
||||
map("n", "]h", function()
|
||||
if vim.wo.diff then
|
||||
vim.cmd.normal({ "]c", bang = true })
|
||||
else
|
||||
gs.nav_hunk("next")
|
||||
end
|
||||
end, "Next Hunk")
|
||||
map("n", "[h", function()
|
||||
if vim.wo.diff then
|
||||
vim.cmd.normal({ "[c", bang = true })
|
||||
else
|
||||
gs.nav_hunk("prev")
|
||||
end
|
||||
end, "Prev Hunk")
|
||||
map("n", "]H", function()
|
||||
gs.nav_hunk("last")
|
||||
end, "Last Hunk")
|
||||
map("n", "[H", function()
|
||||
gs.nav_hunk("first")
|
||||
end, "First Hunk")
|
||||
map({ "n", "v" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")
|
||||
map({ "n", "v" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")
|
||||
map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")
|
||||
map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")
|
||||
map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")
|
||||
map("n", "<leader>ghp", gs.preview_hunk_inline, "Preview Hunk Inline")
|
||||
map("n", "<leader>ghb", function()
|
||||
gs.blame_line({ full = true })
|
||||
end, "Blame Line")
|
||||
map("n", "<leader>ghB", function()
|
||||
gs.blame()
|
||||
end, "Blame Buffer")
|
||||
map("n", "<leader>ghd", gs.diffthis, "Diff This")
|
||||
map("n", "<leader>ghD", function()
|
||||
gs.diffthis("~")
|
||||
end, "Diff This ~")
|
||||
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue