Add nixfmt

Change-Id: I7f21695e3971cfd02b2cce0dd016ff6eb3389905
This commit is contained in:
Rebecca Turner 2024-04-04 16:11:37 -07:00
parent e55fc5af71
commit b323340538
3 changed files with 78 additions and 2 deletions

View file

@ -71,6 +71,9 @@
}; };
overlays = [ overlays = [
(overlayFor (p: p.${stdenv})) (overlayFor (p: p.${stdenv}))
(final: prev: {
nixfmt = final.callPackage ./nix-support/nixfmt.nix {};
})
]; ];
config.permittedInsecurePackages = [ "nix-2.13.6" ]; config.permittedInsecurePackages = [ "nix-2.13.6" ];
@ -296,7 +299,11 @@
}; };
treefmt = { treefmt = {
enable = true; enable = true;
settings.formatters = [ ]; settings.formatters =
let
pkgs = nixpkgsFor.${system}.native;
in
[ pkgs.nixfmt ];
}; };
}; };
}) pre-commit-hooks.lib; }) pre-commit-hooks.lib;
@ -366,7 +373,7 @@
}).overrideAttrs (prev: { }).overrideAttrs (prev: {
# Required for clang-tidy checks # Required for clang-tidy checks
buildInputs = prev.buildInputs buildInputs = prev.buildInputs
++ [ pkgs.just ] ++ [ pkgs.just pkgs.nixfmt ]
++ lib.optional (pre-commit ? enabledPackages) pre-commit.enabledPackages ++ lib.optional (pre-commit ? enabledPackages) pre-commit.enabledPackages
++ lib.optionals (stdenv.cc.isClang) [ pkgs.llvmPackages.llvm pkgs.llvmPackages.clang-unwrapped.dev ]; ++ lib.optionals (stdenv.cc.isClang) [ pkgs.llvmPackages.llvm pkgs.llvmPackages.clang-unwrapped.dev ];
nativeBuildInputs = prev.nativeBuildInputs nativeBuildInputs = prev.nativeBuildInputs

65
nix-support/nixfmt.nix Normal file
View file

@ -0,0 +1,65 @@
# Copy of `nixfmt-rfc-style` vendored from `nixpkgs` master:
# https://github.com/NixOS/nixpkgs/blob/ab6071eb54cc9b66dda436111d4f569e4e56cbf4/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
{
haskell,
haskellPackages,
fetchFromGitHub,
}:
let
inherit (haskell.lib.compose) justStaticExecutables;
raw-pkg = haskellPackages.callPackage (
{
mkDerivation,
base,
cmdargs,
directory,
fetchzip,
filepath,
lib,
megaparsec,
mtl,
parser-combinators,
safe-exceptions,
scientific,
text,
transformers,
unix,
}:
mkDerivation {
pname = "nixfmt";
version = "0.6.0-unstable-2024-03-14";
src = fetchFromGitHub {
owner = "serokell";
repo = "nixfmt";
rev = "8d13b593fa8d8d6e5075f541f3231222a08e84df";
hash = "sha256-HtXvzmfN4wk45qiKZ7V+/5WBV7jnTHfd7iBwF4XGl64=";
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
base
megaparsec
mtl
parser-combinators
scientific
text
transformers
];
executableHaskellDepends = [
base
cmdargs
directory
filepath
safe-exceptions
text
unix
];
jailbreak = true;
homepage = "https://github.com/serokell/nixfmt";
description = "An opinionated formatter for Nix";
license = lib.licenses.mpl20;
mainProgram = "nixfmt";
}
) { };
in
justStaticExecutables raw-pkg

View file

@ -1 +1,5 @@
[formatter] [formatter]
# [formatter.nix]
# command = "nixfmt"
# includes = ["*.nix"]
# excludes = ["tests/**"]