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 = {
|
# flash = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# };
|
# };
|
||||||
# gitsigns = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
# trouble = {
|
# trouble = {
|
||||||
# enable = true;
|
# 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