mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-12 02:04:31 +02:00
Used to generate a full maintainers.nix file that can be used for RFC39 invites. We will use these invites to support requesting reviews from maintainers.
123 lines
3.4 KiB
Nix
123 lines
3.4 KiB
Nix
{ inputs, ... }:
|
|
{
|
|
imports = [
|
|
./devshell.nix
|
|
./generate-all-maintainers
|
|
./list-plugins
|
|
./package-tests.nix
|
|
./template-tests.nix
|
|
./tests.nix
|
|
inputs.git-hooks.flakeModule
|
|
inputs.treefmt-nix.flakeModule
|
|
];
|
|
|
|
perSystem =
|
|
{
|
|
pkgs,
|
|
config,
|
|
system,
|
|
...
|
|
}:
|
|
{
|
|
treefmt.config = {
|
|
projectRootFile = "flake.nix";
|
|
flakeCheck = true;
|
|
|
|
programs = {
|
|
# keep-sorted start block=yes newline_separated=no
|
|
isort.enable = true;
|
|
keep-sorted.enable = true;
|
|
nixfmt = {
|
|
enable = true;
|
|
package = pkgs.nixfmt-rfc-style;
|
|
};
|
|
prettier = {
|
|
enable = true;
|
|
excludes = [ "**.md" ];
|
|
};
|
|
ruff = {
|
|
check = true;
|
|
format = true;
|
|
};
|
|
shfmt.enable = true;
|
|
statix = {
|
|
enable = true;
|
|
disabled-lints = [
|
|
# We often use `nullable == true`
|
|
"bool_comparison"
|
|
];
|
|
};
|
|
stylua.enable = true;
|
|
# FIXME: re-enable on darwin, currently broken: taplo with options '[format]' failed to apply: exit status 101
|
|
taplo.enable = pkgs.stdenv.isLinux;
|
|
# keep-sorted end
|
|
};
|
|
|
|
settings = {
|
|
global.excludes = [
|
|
".editorconfig"
|
|
".envrc"
|
|
".git-blame-ignore-revs"
|
|
".gitignore"
|
|
"LICENSE"
|
|
"flake.lock"
|
|
"**.md"
|
|
"**.scm"
|
|
"**.svg"
|
|
"**/man/*.5"
|
|
# Those files are generated by pytest-regression, which then `diff`s them.
|
|
# Formatting them will make the tests fail.
|
|
"docs/gfm-alerts-to-admonitions/tests/**/*.yml"
|
|
];
|
|
formatter.ruff-format.options = [ "--isolated" ];
|
|
};
|
|
};
|
|
|
|
pre-commit = {
|
|
# We have a treefmt check already, so this is redundant.
|
|
# We also can't run the test if it includes running `nix build`,
|
|
# since the nix CLI can't build within a derivation builder.
|
|
check.enable = false;
|
|
|
|
settings.hooks = {
|
|
deadnix = {
|
|
enable = true;
|
|
|
|
settings = {
|
|
noLambdaArg = true;
|
|
noLambdaPatternNames = true;
|
|
edit = true;
|
|
};
|
|
};
|
|
treefmt = {
|
|
enable = true;
|
|
package = config.formatter;
|
|
};
|
|
typos = {
|
|
enable = true;
|
|
excludes = [ "generated/*" ];
|
|
};
|
|
maintainers = {
|
|
enable = true;
|
|
name = "maintainers";
|
|
description = "Check maintainers when it is modified.";
|
|
files = "^lib/maintainers[.]nix$";
|
|
package = pkgs.nix;
|
|
entry = "nix build --no-link --print-build-logs";
|
|
args = [ ".#checks.${system}.maintainers" ];
|
|
pass_filenames = false;
|
|
};
|
|
plugins-by-name = {
|
|
enable = true;
|
|
name = "plugins-by-name";
|
|
description = "Check `plugins/by-name` when it's modified.";
|
|
files = "^(?:tests/test-sources/)?plugins/by-name/";
|
|
package = pkgs.nix;
|
|
entry = "nix build --no-link --print-build-logs";
|
|
args = [ ".#checks.${system}.plugins-by-name" ];
|
|
pass_filenames = false;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|