diff --git a/.gitignore b/.gitignore index 2efaad0c..ad14a55f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .direnv +.pre-commit-config.yaml result* diff --git a/flake.nix b/flake.nix index b2cb32f0..30cef52a 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,7 @@ ./users ./hosts ./modules + ./fmt-hooks.nix ]; perSystem = {pkgs, ...}: { @@ -105,6 +106,19 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + git-hooks = { + url = "github:cachix/git-hooks.nix"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-compat.follows = "flake-compat"; + }; + }; + + treefmt-nix = { + url = "github:numtide/treefmt-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Custom tuirun = { url = "git+https://git.sr.ht/~canasta/tuirun"; diff --git a/fmt-hooks.nix b/fmt-hooks.nix new file mode 100644 index 00000000..1b194627 --- /dev/null +++ b/fmt-hooks.nix @@ -0,0 +1,26 @@ +{inputs, ...}: { + imports = [ + inputs.git-hooks.flakeModule + inputs.treefmt-nix.flakeModule + ]; + + perSystem = { + pre-commit.settings = { + excludes = ["flake.lock"]; + hooks.treefmt.enable = true; + }; + + treefmt.programs = { + nixfmt.enable = true; + + prettier = { + enable = true; + excludes = [ + ".js" + ".md" + ".ts" + ]; + }; + }; + }; +} diff --git a/modules/home/programs/helix/languages.nix b/modules/home/programs/helix/languages.nix index 167fd0cd..a2b386de 100644 --- a/modules/home/programs/helix/languages.nix +++ b/modules/home/programs/helix/languages.nix @@ -79,7 +79,7 @@ auto-format = true; language-servers = ["nil"]; formatter = { - command = "${pkgs.alejandra}/bin/alejandra"; + command = "${pkgs.nixfmt}/bin/nixfmt"; args = ["-q"]; }; }