mirror of
https://github.com/nix-community/nixvim.git
synced 2025-07-16 12:14:32 +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 = [
|
||||
./devshell.nix
|
||||
./fmt.nix
|
||||
./generate-all-maintainers
|
||||
./git-hooks.nix
|
||||
./list-plugins
|
||||
./package-tests.nix
|
||||
./template-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