aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/programs/git.nix35
1 files changed, 23 insertions, 12 deletions
diff --git a/modules/programs/git.nix b/modules/programs/git.nix
index ec2402f11f8..a174fa0c4ee 100644
--- a/modules/programs/git.nix
+++ b/modules/programs/git.nix
@@ -225,11 +225,23 @@ in {
};
options = mkOption {
- type = types.listOf types.str;
- default = [ ];
- example = [ "--dark" ];
+ type = with types;
+ let
+ primitiveType = either str (either bool int);
+ sectionType = attrsOf primitiveType;
+ in attrsOf (either primitiveType sectionType);
+ default = { };
+ example = {
+ features = "decorations";
+ whitespace-error-style = "22 reverse";
+ decorations = {
+ commit-decoration-style = "bold yellow box ul";
+ file-style = "bold yellow ul";
+ file-decoration-style = "none";
+ };
+ };
description = ''
- Extra command line options given to delta.
+ Options to configure delta.
'';
};
};
@@ -329,14 +341,13 @@ in {
})
(mkIf cfg.delta.enable {
- programs.git.iniContent = let
- deltaArgs = [ "${pkgs.gitAndTools.delta}/bin/delta" ]
- ++ cfg.delta.options;
- in {
- core.pager = concatStringsSep " " deltaArgs;
- interactive.diffFilter =
- concatStringsSep " " (deltaArgs ++ [ "--color-only" ]);
- };
+ programs.git.iniContent =
+ let deltaCommand = "${pkgs.gitAndTools.delta}/bin/delta";
+ in {
+ core.pager = deltaCommand;
+ interactive.diffFilter = "${deltaCommand} --color-only";
+ delta = cfg.delta.options;
+ };
})
]);
}