diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-10-30 14:26:34 +0100 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-10-30 14:26:34 +0100 |
| commit | 981060cf79e468da091b7bb359d19e514fa23ab1 (patch) | |
| tree | b900fec93ee6524e49c12f52c5003b128fbb10e6 /treefmt.nix | |
| parent | notes/deploy: Add a very basic version of a deploy guide (diff) | |
| download | nixos-config-981060cf79e468da091b7bb359d19e514fa23ab1.zip | |
treewide: Align files with the same files in the `nixos-server` repo
This facilitates overlaying the two repos over each other.
Diffstat (limited to 'treefmt.nix')
| -rw-r--r-- | treefmt.nix | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/treefmt.nix b/treefmt.nix new file mode 100644 index 00000000..703a85e8 --- /dev/null +++ b/treefmt.nix @@ -0,0 +1,95 @@ +# nixos-config - My current NixOS configuration +# +# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de> +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of my nixos-config. +# +# You should have received a copy of the License along with this program. +# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. +{ + 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; + settings = { + sort_requires.enabled = true; + column_width = 120; + line_endings = "Unix"; + indent_type = "Spaces"; + indent_width = 2; + quote_style = "ForceDouble"; + call_parentheses = "Always"; + # space_after_function_names = "Never"; + collapse_simple_statement = "Always"; + }; + }; + ruff = { + enable = true; + format = true; + }; + taplo.enable = true; + }; + + settings = { + global.excludes = [ + "CHANGELOG.md" + "NEWS.md" + ]; + formatter = { + clang-format = { + options = ["--style" "GNU"]; + }; + shfmt = { + includes = ["*.bash"]; + }; + }; + }; + } +) |
