This commit is contained in:
2025-02-06 17:45:39 +02:00
commit a3f3abb460
84 changed files with 5567 additions and 0 deletions

22
config/git/default.nix Normal file
View File

@ -0,0 +1,22 @@
{
lib,
config,
...
}: {
imports = [
./diffview.nix
./gitsigns.nix
./lazygit.nix
./neogit.nix
];
options = {
git.enable = lib.mkEnableOption "Enable git module";
};
config = lib.mkIf config.git.enable {
diffview.enable = lib.mkDefault true;
gitsigns.enable = lib.mkDefault true;
lazygit.enable = lib.mkDefault true;
neogit.enable = lib.mkDefault false;
};
}

14
config/git/diffview.nix Normal file
View File

@ -0,0 +1,14 @@
{
lib,
config,
...
}: {
options = {
diffview.enable = lib.mkEnableOption "Enable diffview module";
};
config = lib.mkIf config.diffview.enable {
plugins.diffview = {
enable = true;
};
};
}

110
config/git/gitsigns.nix Normal file
View File

@ -0,0 +1,110 @@
{
lib,
config,
...
}: {
options = {
gitsigns.enable = lib.mkEnableOption "Enable gitsigns module";
};
config = lib.mkIf config.gitsigns.enable {
plugins.gitsigns = {
enable = true;
settings = {
trouble = true;
current_line_blame = false;
};
};
keymaps = [
{
mode = [
"n"
"v"
];
key = "<leader>gh";
action = "gitsigns";
options = {
silent = true;
desc = "+hunks";
};
}
{
mode = "n";
key = "<leader>ghb";
action = ":Gitsigns blame_line<CR>";
options = {
silent = true;
desc = "Blame line";
};
}
{
mode = "n";
key = "<leader>ghd";
action = ":Gitsigns diffthis<CR>";
options = {
silent = true;
desc = "Diff This";
};
}
{
mode = "n";
key = "<leader>ghp";
action = ":Gitsigns preview_hunk<CR>";
options = {
silent = true;
desc = "Preview hunk";
};
}
{
mode = "n";
key = "<leader>ghR";
action = ":Gitsigns reset_buffer<CR>";
options = {
silent = true;
desc = "Reset Buffer";
};
}
{
mode = [
"n"
"v"
];
key = "<leader>ghr";
action = ":Gitsigns reset_hunk<CR>";
options = {
silent = true;
desc = "Reset Hunk";
};
}
{
mode = [
"n"
"v"
];
key = "<leader>ghs";
action = ":Gitsigns stage_hunk<CR>";
options = {
silent = true;
desc = "Stage Hunk";
};
}
{
mode = "n";
key = "<leader>ghS";
action = ":Gitsigns stage_buffer<CR>";
options = {
silent = true;
desc = "Stage Buffer";
};
}
{
mode = "n";
key = "<leader>ghu";
action = ":Gitsigns undo_stage_hunk<CR>";
options = {
silent = true;
desc = "Undo Stage Hunk";
};
}
];
};
}

29
config/git/lazygit.nix Normal file
View File

@ -0,0 +1,29 @@
{
lib,
config,
...
}: {
options = {
lazygit.enable = lib.mkEnableOption "Enable lazygit module";
};
config = lib.mkIf config.lazygit.enable {
plugins.lazygit = {
enable = true;
};
extraConfigLua = ''
require("telescope").load_extension("lazygit")
'';
keymaps = [
{
mode = "n";
key = "<leader>gg";
action = "<cmd>LazyGit<CR>";
options = {
desc = "LazyGit (root dir)";
};
}
];
};
}

21
config/git/neogit.nix Normal file
View File

@ -0,0 +1,21 @@
{
lib,
config,
...
}: {
options = {
neogit.enable = lib.mkEnableOption "Enable neogit module";
};
config = lib.mkIf config.neogit.enable {
plugins.neogit = {
enable = false;
};
keymaps = [
{
mode = "n";
key = "<leader>gg";
action = "<cmd>Neogit<CR>";
}
];
};
}