diff --git a/plugins/by-name/conform-nvim/auto-install.nix b/plugins/by-name/conform-nvim/auto-install.nix index 81c86087..1e5f96c5 100644 --- a/plugins/by-name/conform-nvim/auto-install.nix +++ b/plugins/by-name/conform-nvim/auto-install.nix @@ -23,7 +23,12 @@ rec { name: let permittedNames = lib.optionals (lib.isAttrs configuredFormatters) (attrNames configuredFormatters); - stateList = map (state: lib.fix (lib.toFunction state)) (attrValues states); + stateList = lib.pipe states [ + attrValues + (map lib.toFunction) + (map (fn: fn null)) + (filter isString) + ]; isState = maybePackage: lib.throwIf (isFunction maybePackage) "The '${name}' conform-nvim formatter package is a function" ( diff --git a/plugins/by-name/conform-nvim/formatter-packages.nix b/plugins/by-name/conform-nvim/formatter-packages.nix index db8115cf..599b200a 100644 --- a/plugins/by-name/conform-nvim/formatter-packages.nix +++ b/plugins/by-name/conform-nvim/formatter-packages.nix @@ -6,7 +6,7 @@ with pkgs; let states = { broken = _package: "broken"; - darwinOnly = _package: "Darwin only"; + darwinOnly = p: if stdenv.hostPlatform.isDarwin then p else "Darwin only"; unpackaged = "unpackaged"; }; in diff --git a/tests/test-sources/plugins/by-name/conform-nvim/default.nix b/tests/test-sources/plugins/by-name/conform-nvim/default.nix index f57ba11f..df487fbc 100644 --- a/tests/test-sources/plugins/by-name/conform-nvim/default.nix +++ b/tests/test-sources/plugins/by-name/conform-nvim/default.nix @@ -11,7 +11,12 @@ formatter-packages states ; - stateList = map (state: lib.fix (lib.toFunction state)) (builtins.attrValues states); + stateList = lib.pipe states [ + builtins.attrValues + (map lib.toFunction) + (map (fn: fn null)) + (builtins.filter builtins.isString) + ]; allFormatters = builtins.filter ( name: let