summaryrefslogtreecommitdiff
path: root/modules/devenv
diff options
context:
space:
mode:
authoraristote <quentin.aristote@irif.fr>2025-07-29 14:54:36 +0200
committeraristote <quentin.aristote@irif.fr>2025-07-29 15:20:27 +0200
commit6f25bf04950cf49363a81449ea9faa52402a00cb (patch)
tree3610bed00bdbc0f5107d87baa52abb0bf5e9d119 /modules/devenv
parent2a8763191aed7bc2db4fc478804d80420c542b3b (diff)
devenv: nix: default formatter: alejandra -> nixfmt
Diffstat (limited to 'modules/devenv')
-rw-r--r--modules/devenv/languages/nix.nix50
1 files changed, 34 insertions, 16 deletions
diff --git a/modules/devenv/languages/nix.nix b/modules/devenv/languages/nix.nix
index c692b42..5089b7c 100644
--- a/modules/devenv/languages/nix.nix
+++ b/modules/devenv/languages/nix.nix
@@ -5,28 +5,46 @@
pkgs,
devenv,
...
-}: let
+}:
+let
cfg = config.languages.nix;
-in {
- disabledModules = [(devenv.modules + "/languages/nix.nix")];
+in
+{
+ disabledModules = [ (devenv.modules + "/languages/nix.nix") ];
options.languages.nix = {
enable = lib.mkEnableOption "tools for nix development";
- formatter = lib.mkPackageOption pkgs "nix formatter" {
- default = ["alejandra"];
- };
+ formatter = lib.mkPackageOption pkgs "nix formatter" { default = [ "nixfmt" ]; };
packaging.enable = lib.mkEnableOption "tools for writing nix derivations";
};
- config = lib.mkIf cfg.enable {
- packages = with pkgs; [cfg.formatter deadnix] ++ lib.optionals cfg.packaging.enable [nix-prefetch-scripts nix-prefetch-github];
-
- git-hooks.hooks = {
- deadnix.enable = lib.mkDefault true;
- "${cfg.formatter.pname}".enable = lib.mkDefault true;
- };
+ config = lib.mkIf cfg.enable (
+ lib.mkMerge [
+ {
+ packages =
+ with pkgs;
+ [
+ cfg.formatter
+ deadnix
+ ]
+ ++ lib.optionals cfg.packaging.enable [
+ nix-prefetch-scripts
+ nix-prefetch-github
+ ];
- scripts."${cfg.formatter.pname}-emacs".exec = "${cfg.formatter.pname} " + lib.optionalString (cfg.formatter.pname == "alejandra") "--quiet" + " $@";
- emacs.dirLocals.nix-mode.nix-nixfmt-bin = ''"${cfg.formatter.pname}-emacs"'';
- };
+ git-hooks.hooks =
+ let
+ formatterHookname = with cfg.formatter; if pname == "nixfmt" then "nixfmt-rfc-style" else pname;
+ in
+ {
+ deadnix.enable = lib.mkDefault true;
+ "${formatterHookname}".enable = lib.mkDefault true;
+ };
+ }
+ (lib.mkIf (cfg.formatter.pname == "alejandra") {
+ scripts."alejandra-emacs".exec = "alejandra --quiet $@";
+ emacs.dirLocals.nix-mode.nix-nixfmt-bin = ''"alejandra-emacs"'';
+ })
+ ]
+ );
}