diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-04-01 12:56:56 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-04-01 12:56:56 +0200 |
commit | 4fec87e212697a3f58245eb71a054357aa9f0898 (patch) | |
tree | 1992ad88fcebdf90c6bd76d04728c085fb5fbe21 /templates/rust/treefmt.nix | |
parent | refactor(templates/unmaintained): Move out of the templates dir (diff) | |
download | flake-templates-4fec87e212697a3f58245eb71a054357aa9f0898.tar.gz flake-templates-4fec87e212697a3f58245eb71a054357aa9f0898.zip |
refactor(templates): Instantiate all symlinks
Symlinks are copied verbatim, when nix initializes a template, thus symlinking common files does not work.
Diffstat (limited to 'templates/rust/treefmt.nix')
-rw-r--r--[l---------] | templates/rust/treefmt.nix | 74 |
1 files changed, 73 insertions, 1 deletions
diff --git a/templates/rust/treefmt.nix b/templates/rust/treefmt.nix index 6a4fe7d..1cbab40 120000..100644 --- a/templates/rust/treefmt.nix +++ b/templates/rust/treefmt.nix @@ -1 +1,73 @@ -../../treefmt.nix \ No newline at end of file +{ + treefmt-nix, + pkgs, +}: +treefmt-nix.lib.evalModule pkgs ( + {pkgs, ...}: { + # Used to find the project root + projectRootFile = "flake.nix"; + + programs = { + alejandra.enable = true; + rustfmt.enable = true; + clang-format.enable = true; + mdformat.enable = true; + shfmt = { + enable = true; + indent_size = 4; + }; + shellcheck.enable = true; + prettier = { + settings = { + arrowParens = "always"; + bracketSameLine = false; + bracketSpacing = true; + editorconfig = true; + embeddedLanguageFormatting = "auto"; + endOfLine = "lf"; + # experimentalTernaries = false; + htmlWhitespaceSensitivity = "css"; + insertPragma = false; + jsxSingleQuote = true; + printWidth = 80; + proseWrap = "always"; + quoteProps = "consistent"; + requirePragma = false; + semi = true; + singleAttributePerLine = true; + singleQuote = true; + trailingComma = "all"; + useTabs = false; + vueIndentScriptAndStyle = false; + + tabWidth = 4; + overrides = { + files = ["*.js"]; + options.tabwidth = 2; + }; + }; + }; + stylua.enable = true; + ruff = { + enable = true; + format = true; + }; + taplo.enable = true; + }; + + settings = { + global.excludes = [ + "CHANGELOG.md" + "NEWS.md" + ]; + formatter = { + clang-format = { + options = ["--style" "GNU"]; + }; + shfmt = { + includes = ["*.bash"]; + }; + }; + }; + } +) |