nixos/treefmt.nix

59 lines
1 KiB
Nix

{ lib, pkgs, ... }:
{
tree-root-file = ".git/config";
on-unmatched = "error";
excludes = [
# no formatter available
".gitattributes"
"LICENSE"
"*.kdl"
"*.md"
"*.rasi"
# generated/managed by other programs
"home/xournalpp/settings/*"
"home/zsh/p10k.zsh"
"hosts/*/hardware-configuration.nix"
"secrets/*"
"*/secrets/*"
"*.lock"
# not text
"*.jpg"
"*.png"
];
formatter.black = {
command = lib.getExe pkgs.black;
includes = [ "*.py" ];
options = [ ];
};
formatter.nixfmt = {
command = lib.getExe pkgs.nixfmt-rfc-style;
includes = [ "*.nix" ];
options = [ "--strict" ];
};
formatter.prettier = {
command = lib.getExe pkgs.nodePackages.prettier;
includes = [
"*.json"
"*.yml"
"*.yaml"
];
options = [ "--write" ];
};
formatter.shfmt = {
command = lib.getExe pkgs.shfmt;
includes = [ "*.sh" ];
options = [
"--simplify"
"--write"
"--indent=2"
];
};
}