diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..94acbf06 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +*.md +.github/ diff --git a/flake.lock b/flake.lock index 46c6a35a..6bd1c34b 100644 --- a/flake.lock +++ b/flake.lock @@ -254,7 +254,8 @@ "nix-darwin": "nix-darwin", "nixos-generators": "nixos-generators", "nixpkgs": "nixpkgs_2", - "pre-commit-hooks-nix": "pre-commit-hooks-nix" + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "treefmt-nix": "treefmt-nix" } }, "systems": { @@ -271,6 +272,26 @@ "repo": "default", "type": "github" } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711963903, + "narHash": "sha256-N3QDhoaX+paWXHbEXZapqd1r95mdshxToGowtjtYkGI=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49dc4a92b02b8e68798abd99184f228243b6e3ac", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index b06f49f5..3e17cef7 100644 --- a/flake.nix +++ b/flake.nix @@ -14,6 +14,9 @@ nixos-generators.url = github:nix-community/nixos-generators; nixos-generators.inputs.nixpkgs.follows = "nixpkgs"; + treefmt-nix.url = "github:numtide/treefmt-nix"; + treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; + pre-commit-hooks-nix.url = github:cachix/pre-commit-hooks.nix; pre-commit-hooks-nix.inputs.nixpkgs.follows = "nixpkgs"; @@ -29,6 +32,7 @@ imports = [ inputs.pre-commit-hooks-nix.flakeModule + inputs.treefmt-nix.flakeModule ]; systems = [ "x86_64-linux" "aarch64-darwin" ]; @@ -53,11 +57,11 @@ settings = { src = ./.; hooks = { + treefmt.enable = true; nixpkgs-fmt.enable = true; prettier = { enable = true; - excludes = [ ".github/" ]; }; actionlint = { @@ -119,6 +123,14 @@ ) ); + treefmt.config = { + projectRootFile = "flake.nix"; + programs = { + prettier.enable = true; + nixpkgs-fmt.enable = true; + }; + }; + apps = let mkApp = pkg: script: { @@ -134,6 +146,10 @@ }); devShells.default = pkgs.mkShell { + inputsFrom = [ + config.treefmt.build.devShell + ]; + buildInputs = (with pkgs; [ actionlint