diff options
| author | aristote <quentin.aristote@irif.fr> | 2025-07-29 14:54:36 +0200 |
|---|---|---|
| committer | aristote <quentin.aristote@irif.fr> | 2025-07-29 15:20:27 +0200 |
| commit | 6f25bf04950cf49363a81449ea9faa52402a00cb (patch) | |
| tree | 3610bed00bdbc0f5107d87baa52abb0bf5e9d119 /modules/devenv | |
| parent | 2a8763191aed7bc2db4fc478804d80420c542b3b (diff) | |
devenv: nix: default formatter: alejandra -> nixfmt
Diffstat (limited to 'modules/devenv')
| -rw-r--r-- | modules/devenv/languages/nix.nix | 50 |
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"''; + }) + ] + ); } |
