/ flakeModules / formatter.nix
formatter.nix
 1  { inputs
 2  , lib
 3  , ...
 4  }:
 5  
 6  {
 7    imports = [
 8      inputs.treefmt-nix.flakeModule
 9    ];
10  
11    perSystem =
12      { config
13      , pkgs
14      , ...
15      }: {
16        treefmt.config = {
17          projectRootFile = ".git/config";
18          package = pkgs.treefmt;
19  
20          programs = {
21            keep-sorted.enable = true;
22  
23            # nix
24            nixpkgs-fmt.enable = true;
25            deadnix.enable = true;
26            statix.enable = true;
27  
28            # lua
29            stylua.enable = true;
30  
31            # shell
32            shfmt.enable = true;
33  
34            # python
35            black.enable = true;
36          };
37  
38          settings.formatter = {
39            keep-sorted = {
40              includes = lib.mkForce [ "*.nix" ];
41            };
42          };
43        };
44      };
45  }