mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-17 17:24:21 +02:00
flake: move formatting and git hooks into dedicated modules
Some checks failed
Publish every Git push to main to FlakeHub / flakehub-publish (push) Has been cancelled
Publish every git push to Flakestry / publish-flake (push) Has been cancelled
Documentation / Version info (push) Has been cancelled
Documentation / Build (push) Has been cancelled
Documentation / Combine builds (push) Has been cancelled
Documentation / Deploy (push) Has been cancelled
Some checks failed
Publish every Git push to main to FlakeHub / flakehub-publish (push) Has been cancelled
Publish every git push to Flakestry / publish-flake (push) Has been cancelled
Documentation / Version info (push) Has been cancelled
Documentation / Build (push) Has been cancelled
Documentation / Combine builds (push) Has been cancelled
Documentation / Deploy (push) Has been cancelled
This commit is contained in:
parent
97819ce539
commit
1fb1bf8a73
3 changed files with 133 additions and 117 deletions
|
@ -1,127 +1,12 @@
|
||||||
{ inputs, ... }:
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./devshell.nix
|
./devshell.nix
|
||||||
|
./fmt.nix
|
||||||
./generate-all-maintainers
|
./generate-all-maintainers
|
||||||
|
./git-hooks.nix
|
||||||
./list-plugins
|
./list-plugins
|
||||||
./package-tests.nix
|
./package-tests.nix
|
||||||
./template-tests.nix
|
./template-tests.nix
|
||||||
./tests.nix
|
./tests.nix
|
||||||
inputs.git-hooks.flakeModule
|
|
||||||
inputs.treefmt-nix.flakeModule
|
|
||||||
];
|
];
|
||||||
|
|
||||||
perSystem =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
ci.buildbot = {
|
|
||||||
inherit (config.checks) treefmt;
|
|
||||||
};
|
|
||||||
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
69
flake/dev/fmt.nix
Normal file
69
flake/dev/fmt.nix
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.treefmt-nix.flakeModule
|
||||||
|
];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
ci.buildbot = {
|
||||||
|
inherit (config.checks) treefmt;
|
||||||
|
};
|
||||||
|
|
||||||
|
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" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
62
flake/dev/git-hooks.nix
Normal file
62
flake/dev/git-hooks.nix
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.git-hooks.flakeModule
|
||||||
|
];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue