feat(plugins): add gitsigns
This commit is contained in:
parent
37df509e53
commit
36f88ca6d7
1 changed files with 122 additions and 0 deletions
122
plugins/gitsigns.nix
Normal file
122
plugins/gitsigns.nix
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
{ icons, ... }:
|
||||
|
||||
{
|
||||
opts = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
current_line_blame = true;
|
||||
current_line_blame_formatter = " <author>, <author_time:%R> – <summary>";
|
||||
current_line_blame_formatter_nc = " Uncommitted";
|
||||
current_line_blame_opts.ignore_whitespace = true;
|
||||
|
||||
signs = {
|
||||
add.text = icons.GitSign;
|
||||
change.text = icons.GitSign;
|
||||
changedelete.text = icons.GitSign;
|
||||
delete.text = icons.GitSign;
|
||||
topdelete.text = icons.GitSign;
|
||||
untracked.text = icons.GitSign;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
rootOpts = {
|
||||
# Enable catppuccin colors
|
||||
# https://github.com/catppuccin/nvim/blob/main/lua/catppuccin/groups/integrations/gitsigns.lua
|
||||
colorschemes.catppuccin.settings.integrations.gitsigns = true;
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
key = "]g";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").next_hunk()
|
||||
end
|
||||
'';
|
||||
options.desc = "Next Git hunk";
|
||||
}
|
||||
{
|
||||
key = "[g";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").prev_hunk()
|
||||
end
|
||||
'';
|
||||
options.desc = "Previous Git hunk";
|
||||
}
|
||||
{
|
||||
key = "<leader>gl";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").blame_line { full = true }
|
||||
end
|
||||
'';
|
||||
options.desc = "View full Git blame";
|
||||
}
|
||||
{
|
||||
key = "<Leader>gp";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").preview_hunk_inline()
|
||||
end
|
||||
'';
|
||||
options.desc = "Preview Git hunk";
|
||||
}
|
||||
{
|
||||
key = "<Leader>gh";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").reset_hunk()
|
||||
end
|
||||
'';
|
||||
options.desc = "Reset Git hunk";
|
||||
}
|
||||
{
|
||||
key = "<Leader>gr";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").reset_buffer()
|
||||
end
|
||||
'';
|
||||
options.desc = "Reset Git buffer";
|
||||
}
|
||||
{
|
||||
key = "<Leader>gs";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").stage_hunk()
|
||||
end
|
||||
'';
|
||||
options.desc = "Stage Git hunk";
|
||||
}
|
||||
{
|
||||
key = "<Leader>gS";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").stage_buffer()
|
||||
end
|
||||
'';
|
||||
options.desc = "Stage Git buffer";
|
||||
}
|
||||
{
|
||||
key = "<Leader>gu";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").undo_stage_hunk()
|
||||
end
|
||||
'';
|
||||
options.desc = "Unstage Git hunk";
|
||||
}
|
||||
{
|
||||
key = "<Leader>gd";
|
||||
action.__raw = ''
|
||||
function()
|
||||
require("gitsigns").diffthis()
|
||||
end
|
||||
'';
|
||||
options.desc = "View Git diff";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue