aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Rodas <marsam@users.noreply.github.com>2020-07-20 10:03:40 -0500
committerGitHub <noreply@github.com>2020-07-20 17:03:40 +0200
commit4bd0ca2cd793b3f057d114bd6a3183419f52ca49 (patch)
tree317c94b585846fb978c09157e70a67ebb9d5cfee
parent5c639ff68abf0f16f2e63fb3f8aca016d54c7d10 (diff)
git: configure delta through [delta] git section (#1371)
this breaks backwards compatibility (now accepts a dict instead of a list) so please update programs.git.delta.options accordingly.
-rw-r--r--modules/programs/git.nix35
-rw-r--r--tests/modules/programs/git/git-expected.conf13
-rw-r--r--tests/modules/programs/git/git.nix10
3 files changed, 43 insertions, 15 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;
+ };
})
]);
}
diff --git a/tests/modules/programs/git/git-expected.conf b/tests/modules/programs/git/git-expected.conf
index a4457adfabb..c3e534af058 100644
--- a/tests/modules/programs/git/git-expected.conf
+++ b/tests/modules/programs/git/git-expected.conf
@@ -7,7 +7,16 @@
gpgSign = true
[core]
- pager = "@deltaCommand@ --dark"
+ pager = "@deltaCommand@"
+
+[delta]
+ features = "decorations"
+ whitespace-error-style = "22 reverse"
+
+[delta "decorations"]
+ commit-decoration-style = "bold yellow box ul"
+ file-decoration-style = "none"
+ file-style = "bold yellow ul"
[extra]
boolean = true
@@ -32,7 +41,7 @@
program = "path-to-gpg"
[interactive]
- diffFilter = "@deltaCommand@ --dark --color-only"
+ diffFilter = "@deltaCommand@ --color-only"
[user]
email = "user@example.org"
diff --git a/tests/modules/programs/git/git.nix b/tests/modules/programs/git/git.nix
index 54e3c79b43d..feefff54b61 100644
--- a/tests/modules/programs/git/git.nix
+++ b/tests/modules/programs/git/git.nix
@@ -60,7 +60,15 @@ in {
lfs.enable = true;
delta = {
enable = true;
- options = [ "--dark" ];
+ options = {
+ features = "decorations";
+ whitespace-error-style = "22 reverse";
+ decorations = {
+ commit-decoration-style = "bold yellow box ul";
+ file-style = "bold yellow ul";
+ file-decoration-style = "none";
+ };
+ };
};
}