initial
This commit is contained in:
22
config/git/default.nix
Normal file
22
config/git/default.nix
Normal 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
14
config/git/diffview.nix
Normal 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
110
config/git/gitsigns.nix
Normal 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
29
config/git/lazygit.nix
Normal 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
21
config/git/neogit.nix
Normal 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>";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user