1
0
Fork 0
mirror of https://github.com/nix-community/nixvim.git synced 2025-12-12 03:51:10 +01:00

plugins/conform: refactor the autoInstall option implementation

Signed-off-by: saygo-png <saygo.mail@proton.me>
This commit is contained in:
saygo-png 2025-11-27 00:40:49 +01:00 committed by Matt Sturgeon
parent 79bfadb32a
commit 96d3538c32
3 changed files with 91 additions and 86 deletions

View file

@ -245,21 +245,21 @@ lib.nixvim.plugins.mkNeovimPlugin {
let
inherit (cfg.autoInstall) enable enableWarnings;
inherit (import ./auto-install.nix { inherit pkgs lib; })
getPackageByName
getPackageOrStateByName
collectFormatters
cleanMaybePackageList
mkWarnsFromMaybePackageList
mkWarnsFromStates
;
getPackageByNameWith = getPackageByName {
getPackageOrStateByNameWith = getPackageOrStateByName {
configuredFormatters = cfg.settings.formatters;
inherit (cfg.autoInstall) overrides;
};
names = collectFormatters (attrValues cfg.settings.formatters_by_ft or { });
packageList = map getPackageByNameWith names;
warns = (mkWarnsFromMaybePackageList opts) packageList;
formatterNames = collectFormatters (attrValues (cfg.settings.formatters_by_ft or { }));
packagesAndStates = lib.foldAttrs (item: acc: [ item ] ++ acc) [ ] (
map getPackageOrStateByNameWith formatterNames
);
in
{
warnings = lib.mkIf (enable && warns != [ ] && enableWarnings) warns;
extraPackages = lib.mkIf enable (cleanMaybePackageList packageList);
warnings = lib.mkIf (enable && enableWarnings) (mkWarnsFromStates opts packagesAndStates.wrong);
extraPackages = lib.mkIf enable packagesAndStates.right;
};
}