diff --git a/modules/programs/difftastic.nix b/modules/programs/difftastic.nix index f3997f53..ebb9b37b 100644 --- a/modules/programs/difftastic.nix +++ b/modules/programs/difftastic.nix @@ -67,11 +67,14 @@ in options = mkOption { type = with types; - attrsOf (oneOf [ - str - int - bool - ]); + let + atom = oneOf [ + str + int + bool + ]; + in + attrsOf (either atom (listOf atom)); default = { }; example = { color = "dark"; diff --git a/tests/modules/programs/difftastic/difftastic-with-git-external-diff.nix b/tests/modules/programs/difftastic/difftastic-with-git-external-diff.nix index 5434c9d9..dd7c24f2 100644 --- a/tests/modules/programs/difftastic/difftastic-with-git-external-diff.nix +++ b/tests/modules/programs/difftastic/difftastic-with-git-external-diff.nix @@ -8,6 +8,10 @@ options = { color = "always"; display = "side-by-side"; + override = [ + "*.mill:Scala" + "*.yuck:Emacs Lisp" + ]; }; }; @@ -17,7 +21,7 @@ assertFileExists home-files/.config/git/config assertFileContains home-files/.config/git/config '[diff]' # Should have diff.external set - assertFileContains home-files/.config/git/config "external = \"@difftastic@/bin/difft '--color=always' '--display=side-by-side'\"" + assertFileContains home-files/.config/git/config "external = \"@difftastic@/bin/difft '--color=always' '--display=side-by-side' '--override=*.mill:Scala' '--override=*.yuck:Emacs Lisp'\"" # Should NOT have difftool config when diffToolMode is explicitly false assertFileNotRegex home-files/.config/git/config 'tool = "difftastic"' assertFileNotRegex home-files/.config/git/config '\[difftool "difftastic"\]'