From fe059cd395575c00d475ab1c8200dcc3495724d9 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Mon, 29 Sep 2025 02:10:08 +0100 Subject: [PATCH] flake: add nixf-diagnose to treefmt config Checks nixd's diagnostic lints using libnixf. --- flake/dev/devshell.nix | 1 - flake/dev/fmt.nix | 15 ++++++++++++++- flake/overlays.nix | 7 +------ flake/wrappers.nix | 2 +- modules/highlights.nix | 7 +------ plugins/by-name/barbar/default.nix | 7 +------ plugins/by-name/bufferline/default.nix | 7 +------ plugins/by-name/commentary/default.nix | 6 +----- plugins/by-name/copilot-lua/default.nix | 7 +------ plugins/by-name/coq-thirdparty/default.nix | 1 - plugins/by-name/diffview/default.nix | 1 - plugins/by-name/endwise/default.nix | 6 +----- plugins/by-name/firenvim/default.nix | 7 +------ plugins/by-name/headlines/default.nix | 10 ++-------- plugins/by-name/helm/default.nix | 6 +----- plugins/by-name/hunk/default.nix | 7 +------ plugins/by-name/idris2/default.nix | 6 +----- plugins/by-name/lsp-lines/default.nix | 6 +----- plugins/by-name/lualine/default.nix | 6 +----- plugins/by-name/nix/default.nix | 6 +----- plugins/by-name/preview/default.nix | 9 ++------- plugins/by-name/rest/default.nix | 7 +------ plugins/by-name/rustaceanvim/default.nix | 3 +-- plugins/by-name/rustaceanvim/settings-options.nix | 6 +----- plugins/by-name/smart-splits/default.nix | 6 +----- plugins/by-name/timerly/default.nix | 7 +------ plugins/by-name/treesitter-refactor/default.nix | 1 - plugins/by-name/undotree/default.nix | 9 ++------- plugins/by-name/vim-be-good/default.nix | 2 +- plugins/by-name/vim-surround/default.nix | 6 +----- plugins/by-name/vimtex/default.nix | 7 +------ plugins/by-name/wakatime/default.nix | 9 ++------- plugins/by-name/yaml-schema-detect/default.nix | 7 +------ plugins/cmp/sources/default.nix | 11 ++++------- tests/extra-args.nix | 2 +- tests/main.nix | 2 -- tests/test-sources/modules/dependencies.nix | 7 +------ .../test-sources/plugins/pluginmanagers/lz-n.nix | 2 +- 38 files changed, 53 insertions(+), 171 deletions(-) diff --git a/flake/dev/devshell.nix b/flake/dev/devshell.nix index b31ee96d..a8b8dd16 100644 --- a/flake/dev/devshell.nix +++ b/flake/dev/devshell.nix @@ -8,7 +8,6 @@ { pkgs, config, - self', system, ... }: diff --git a/flake/dev/fmt.nix b/flake/dev/fmt.nix index 7340f8de..42ab126c 100644 --- a/flake/dev/fmt.nix +++ b/flake/dev/fmt.nix @@ -5,7 +5,7 @@ ]; perSystem = - { config, pkgs, ... }: + { pkgs, ... }: { treefmt.config = { projectRootFile = "flake.nix"; @@ -15,6 +15,10 @@ # keep-sorted start block=yes newline_separated=no isort.enable = true; keep-sorted.enable = true; + nixf-diagnose = { + enable = true; + priority = -1; + }; nixfmt = { enable = true; package = pkgs.nixfmt-rfc-style; @@ -30,6 +34,7 @@ shfmt.enable = true; statix = { enable = true; + priority = -2; disabled-lints = [ # We often use `nullable == true` "bool_comparison" @@ -58,6 +63,14 @@ "docs/gfm-alerts-to-admonitions/tests/**/*.yml" ]; formatter.ruff-format.options = [ "--isolated" ]; + formatter.nixf-diagnose.options = [ + "--auto-fix" + "--ignore=sema-unused-def-lambda-witharg-formal" + ]; + formatter.nixf-diagnose.excludes = [ + # sema-unused-def-lambda-noarg-formal + "ci/rust-analyzer/default.nix" + ]; }; }; diff --git a/flake/overlays.nix b/flake/overlays.nix index 0ad88df0..587b59ad 100644 --- a/flake/overlays.nix +++ b/flake/overlays.nix @@ -2,12 +2,7 @@ { imports = [ inputs.flake-parts.flakeModules.easyOverlay ]; perSystem = - { - config, - pkgs, - final, - ... - }: + { config, ... }: { overlayAttrs = { nixvim = { diff --git a/flake/wrappers.nix b/flake/wrappers.nix index d88ca6ac..3cb3e0fb 100644 --- a/flake/wrappers.nix +++ b/flake/wrappers.nix @@ -5,7 +5,7 @@ }: { perSystem = - { system, pkgs, ... }: + { system, ... }: { _module.args = { makeNixvimWithModule = import ../wrappers/standalone.nix { diff --git a/modules/highlights.nix b/modules/highlights.nix index 46ce0fc9..2bb1d5d9 100644 --- a/modules/highlights.nix +++ b/modules/highlights.nix @@ -1,9 +1,4 @@ -{ - lib, - helpers, - config, - ... -}: +{ lib, config, ... }: { options = { highlight = lib.mkOption { diff --git a/plugins/by-name/barbar/default.nix b/plugins/by-name/barbar/default.nix index 6f416001..8d97ea69 100644 --- a/plugins/by-name/barbar/default.nix +++ b/plugins/by-name/barbar/default.nix @@ -1,9 +1,4 @@ -{ - config, - lib, - options, - ... -}: +{ config, lib, ... }: with lib; let inherit (lib.nixvim) diff --git a/plugins/by-name/bufferline/default.nix b/plugins/by-name/bufferline/default.nix index 50f729eb..fb6bb96f 100644 --- a/plugins/by-name/bufferline/default.nix +++ b/plugins/by-name/bufferline/default.nix @@ -1,9 +1,4 @@ -{ - lib, - options, - config, - ... -}: +{ lib, config, ... }: let inherit (lib) types; inherit (lib.nixvim) defaultNullOpts mkSettingsRenamedOptionModules; diff --git a/plugins/by-name/commentary/default.nix b/plugins/by-name/commentary/default.nix index 118ff70b..50881894 100644 --- a/plugins/by-name/commentary/default.nix +++ b/plugins/by-name/commentary/default.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkVimPlugin { name = "commentary"; package = "vim-commentary"; diff --git a/plugins/by-name/copilot-lua/default.nix b/plugins/by-name/copilot-lua/default.nix index 82c70fd3..468b5b25 100644 --- a/plugins/by-name/copilot-lua/default.nix +++ b/plugins/by-name/copilot-lua/default.nix @@ -1,9 +1,4 @@ -{ - config, - lib, - pkgs, - ... -}: +{ config, lib, ... }: let inherit (lib) types; inherit (lib.nixvim) defaultNullOpts; diff --git a/plugins/by-name/coq-thirdparty/default.nix b/plugins/by-name/coq-thirdparty/default.nix index 6b4a3456..bb8d5ed3 100644 --- a/plugins/by-name/coq-thirdparty/default.nix +++ b/plugins/by-name/coq-thirdparty/default.nix @@ -1,6 +1,5 @@ { lib, - helpers, config, pkgs, ... diff --git a/plugins/by-name/diffview/default.nix b/plugins/by-name/diffview/default.nix index 539b62cb..a0db79de 100644 --- a/plugins/by-name/diffview/default.nix +++ b/plugins/by-name/diffview/default.nix @@ -3,7 +3,6 @@ helpers, config, pkgs, - options, ... }: with lib; diff --git a/plugins/by-name/endwise/default.nix b/plugins/by-name/endwise/default.nix index 275d9a4b..6b3ce635 100644 --- a/plugins/by-name/endwise/default.nix +++ b/plugins/by-name/endwise/default.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkVimPlugin { name = "endwise"; package = "vim-endwise"; diff --git a/plugins/by-name/firenvim/default.nix b/plugins/by-name/firenvim/default.nix index 28192fb1..eb823079 100644 --- a/plugins/by-name/firenvim/default.nix +++ b/plugins/by-name/firenvim/default.nix @@ -1,9 +1,4 @@ -{ - lib, - config, - options, - ... -}: +{ lib, config, ... }: let inherit (lib) types; inherit (lib.nixvim) defaultNullOpts; diff --git a/plugins/by-name/headlines/default.nix b/plugins/by-name/headlines/default.nix index 93d43137..1f700ffb 100644 --- a/plugins/by-name/headlines/default.nix +++ b/plugins/by-name/headlines/default.nix @@ -1,16 +1,10 @@ -{ - lib, - helpers, - config, - ... -}: -with lib; +{ lib, config, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "headlines"; package = "headlines-nvim"; description = "A plugin that adds horizontal highlights for text filetypes, like markdown, orgmode, and neorg."; - maintainers = [ maintainers.GaetanLepage ]; + maintainers = [ lib.maintainers.GaetanLepage ]; settingsExample = { org.headline_highlights = false; diff --git a/plugins/by-name/helm/default.nix b/plugins/by-name/helm/default.nix index dd63a95b..da40eb06 100644 --- a/plugins/by-name/helm/default.nix +++ b/plugins/by-name/helm/default.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkVimPlugin { name = "helm"; package = "vim-helm"; diff --git a/plugins/by-name/hunk/default.nix b/plugins/by-name/hunk/default.nix index 04aa6275..050a03ee 100644 --- a/plugins/by-name/hunk/default.nix +++ b/plugins/by-name/hunk/default.nix @@ -1,9 +1,4 @@ -{ - lib, - helpers, - config, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "hunk"; package = "hunk-nvim"; diff --git a/plugins/by-name/idris2/default.nix b/plugins/by-name/idris2/default.nix index 0585b68a..f799444a 100644 --- a/plugins/by-name/idris2/default.nix +++ b/plugins/by-name/idris2/default.nix @@ -1,8 +1,4 @@ -{ - helpers, - lib, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "idris2"; package = "idris2-nvim"; diff --git a/plugins/by-name/lsp-lines/default.nix b/plugins/by-name/lsp-lines/default.nix index 0b16bd4e..ec5913e1 100644 --- a/plugins/by-name/lsp-lines/default.nix +++ b/plugins/by-name/lsp-lines/default.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: with lib; lib.nixvim.plugins.mkNeovimPlugin { name = "lsp-lines"; diff --git a/plugins/by-name/lualine/default.nix b/plugins/by-name/lualine/default.nix index d52eb27f..f093f92a 100644 --- a/plugins/by-name/lualine/default.nix +++ b/plugins/by-name/lualine/default.nix @@ -1,8 +1,4 @@ -{ - lib, - pkgs, - ... -}: +{ lib, ... }: let inherit (lib.nixvim) defaultNullOpts mkSettingsRenamedOptionModules; inherit (lib) types; diff --git a/plugins/by-name/nix/default.nix b/plugins/by-name/nix/default.nix index 97f3c121..b75b8ad3 100644 --- a/plugins/by-name/nix/default.nix +++ b/plugins/by-name/nix/default.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkVimPlugin { name = "nix"; package = "vim-nix"; diff --git a/plugins/by-name/preview/default.nix b/plugins/by-name/preview/default.nix index 2625c92e..80df5a78 100644 --- a/plugins/by-name/preview/default.nix +++ b/plugins/by-name/preview/default.nix @@ -1,9 +1,4 @@ -{ - lib, - helpers, - ... -}: -with lib; +{ lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "preview"; package = "Preview-nvim"; @@ -11,5 +6,5 @@ lib.nixvim.plugins.mkNeovimPlugin { hasSettings = false; - maintainers = [ maintainers.GaetanLepage ]; + maintainers = [ lib.maintainers.GaetanLepage ]; } diff --git a/plugins/by-name/rest/default.nix b/plugins/by-name/rest/default.nix index 52d9db7b..e8333a06 100644 --- a/plugins/by-name/rest/default.nix +++ b/plugins/by-name/rest/default.nix @@ -1,9 +1,4 @@ -{ - config, - lib, - pkgs, - ... -}: +{ config, lib, ... }: let inherit (lib) mkRemovedOptionModule types; inherit (lib.nixvim) defaultNullOpts; diff --git a/plugins/by-name/rustaceanvim/default.nix b/plugins/by-name/rustaceanvim/default.nix index 2e265235..34544e5f 100644 --- a/plugins/by-name/rustaceanvim/default.nix +++ b/plugins/by-name/rustaceanvim/default.nix @@ -2,7 +2,6 @@ lib, helpers, config, - pkgs, ... }: with lib; @@ -26,7 +25,7 @@ lib.nixvim.plugins.mkNeovimPlugin { }) ]; - settingsOptions = import ./settings-options.nix { inherit lib helpers pkgs; }; + settingsOptions = import ./settings-options.nix { inherit lib helpers; }; settingsExample = { server = { diff --git a/plugins/by-name/rustaceanvim/settings-options.nix b/plugins/by-name/rustaceanvim/settings-options.nix index 57133d11..c6cabfa5 100644 --- a/plugins/by-name/rustaceanvim/settings-options.nix +++ b/plugins/by-name/rustaceanvim/settings-options.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - pkgs, -}: +{ lib, helpers }: with lib; { tools = diff --git a/plugins/by-name/smart-splits/default.nix b/plugins/by-name/smart-splits/default.nix index 48d9fd32..fbaece75 100644 --- a/plugins/by-name/smart-splits/default.nix +++ b/plugins/by-name/smart-splits/default.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "smart-splits"; package = "smart-splits-nvim"; diff --git a/plugins/by-name/timerly/default.nix b/plugins/by-name/timerly/default.nix index 5bc9f5a2..34c9fa19 100644 --- a/plugins/by-name/timerly/default.nix +++ b/plugins/by-name/timerly/default.nix @@ -1,9 +1,4 @@ -{ - config, - lib, - pkgs, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "timerly"; package = "timerly"; diff --git a/plugins/by-name/treesitter-refactor/default.nix b/plugins/by-name/treesitter-refactor/default.nix index 4e98c240..53147897 100644 --- a/plugins/by-name/treesitter-refactor/default.nix +++ b/plugins/by-name/treesitter-refactor/default.nix @@ -1,6 +1,5 @@ { lib, - helpers, config, pkgs, ... diff --git a/plugins/by-name/undotree/default.nix b/plugins/by-name/undotree/default.nix index 5ef6fcb3..2e0009d8 100644 --- a/plugins/by-name/undotree/default.nix +++ b/plugins/by-name/undotree/default.nix @@ -1,11 +1,6 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: with lib; -with lib.nixvim.plugins; -mkVimPlugin { +lib.nixvim.plugins.mkVimPlugin { name = "undotree"; globalPrefix = "undotree_"; description = "The undo history visualizer for Vim."; diff --git a/plugins/by-name/vim-be-good/default.nix b/plugins/by-name/vim-be-good/default.nix index 0ea1ec50..ff11784d 100644 --- a/plugins/by-name/vim-be-good/default.nix +++ b/plugins/by-name/vim-be-good/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ... }: +{ lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "vim-be-good"; package = "vim-be-good"; diff --git a/plugins/by-name/vim-surround/default.nix b/plugins/by-name/vim-surround/default.nix index 3f3e0455..40a4e49f 100644 --- a/plugins/by-name/vim-surround/default.nix +++ b/plugins/by-name/vim-surround/default.nix @@ -1,8 +1,4 @@ -{ - lib, - helpers, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkVimPlugin { name = "vim-surround"; package = "vim-surround"; diff --git a/plugins/by-name/vimtex/default.nix b/plugins/by-name/vimtex/default.nix index 43126808..0110b9e2 100644 --- a/plugins/by-name/vimtex/default.nix +++ b/plugins/by-name/vimtex/default.nix @@ -1,9 +1,4 @@ -{ - lib, - helpers, - pkgs, - ... -}: +{ lib, pkgs, ... }: with lib; lib.nixvim.plugins.mkVimPlugin { name = "vimtex"; diff --git a/plugins/by-name/wakatime/default.nix b/plugins/by-name/wakatime/default.nix index f25071c8..049328bc 100644 --- a/plugins/by-name/wakatime/default.nix +++ b/plugins/by-name/wakatime/default.nix @@ -1,13 +1,8 @@ -{ - lib, - helpers, - ... -}: -with lib; +{ lib, ... }: lib.nixvim.plugins.mkVimPlugin { name = "wakatime"; package = "vim-wakatime"; description = "Vim plugin for WakaTime, a time tracking service for developers."; - maintainers = [ maintainers.GaetanLepage ]; + maintainers = [ lib.maintainers.GaetanLepage ]; } diff --git a/plugins/by-name/yaml-schema-detect/default.nix b/plugins/by-name/yaml-schema-detect/default.nix index f234ef3f..46bba59e 100644 --- a/plugins/by-name/yaml-schema-detect/default.nix +++ b/plugins/by-name/yaml-schema-detect/default.nix @@ -1,9 +1,4 @@ -{ - lib, - config, - options, - ... -}: +{ lib, ... }: lib.nixvim.plugins.mkNeovimPlugin { name = "yaml-schema-detect"; package = "yaml-schema-detect-nvim"; diff --git a/plugins/cmp/sources/default.nix b/plugins/cmp/sources/default.nix index 6e8e803d..13049e75 100644 --- a/plugins/cmp/sources/default.nix +++ b/plugins/cmp/sources/default.nix @@ -1,9 +1,4 @@ -{ - lib, - helpers, - pkgs, - ... -}@args: +{ lib, pkgs, ... }: let # A list of most cmp source plugins, passed to mkCmpSourcePlugin. @@ -183,7 +178,9 @@ let } ]; - mkCmpSourcePlugin = import ./_mk-cmp-plugin.nix args; + mkCmpSourcePlugin = import ./_mk-cmp-plugin.nix { + inherit lib pkgs; + }; pluginModules = builtins.map mkCmpSourcePlugin sources; in { diff --git a/tests/extra-args.nix b/tests/extra-args.nix index 53a77c40..082d9c42 100644 --- a/tests/extra-args.nix +++ b/tests/extra-args.nix @@ -12,7 +12,7 @@ let }; generated = makeNixvimWithModule { module = - { regularArg, extraModule, ... }: + { extraModule, ... }: { _module.args = { regularArg = "regularValue"; diff --git a/tests/main.nix b/tests/main.nix index 3403a285..cd2f1d46 100644 --- a/tests/main.nix +++ b/tests/main.nix @@ -4,8 +4,6 @@ lib ? pkgs.lib, linkFarm, pkgs, - self, - system, pkgsForTest, }: let diff --git a/tests/test-sources/modules/dependencies.nix b/tests/test-sources/modules/dependencies.nix index c146d0f0..0a8eabf6 100644 --- a/tests/test-sources/modules/dependencies.nix +++ b/tests/test-sources/modules/dependencies.nix @@ -27,12 +27,7 @@ in }; all = - { - lib, - pkgs, - options, - ... - }: + { lib, options, ... }: let enableDep = depName: depOption: { enable = isDepEnabled depName depOption.package.default; diff --git a/tests/test-sources/plugins/pluginmanagers/lz-n.nix b/tests/test-sources/plugins/pluginmanagers/lz-n.nix index 48faf9a2..ab0e438c 100644 --- a/tests/test-sources/plugins/pluginmanagers/lz-n.nix +++ b/tests/test-sources/plugins/pluginmanagers/lz-n.nix @@ -64,7 +64,7 @@ in }; example-multiple-plugin = - { pkgs, lib, ... }: + { pkgs, ... }: { extraPlugins = with pkgs.vimPlugins;