{ pkgs, inputs }: let disabledPlugins = [ # That one is not technically a plugin, but by putting it in this list, we # get it removed from the top level list of requirement and it is not pull # in the nix shell. "shake-bench" ]; hpkgsOverride = hself: hsuper: with pkgs.haskell.lib; { hlsDisabledPlugins = disabledPlugins; } // (builtins.mapAttrs (_: drv: disableLibraryProfiling drv) { apply-refact = hsuper.apply-refact_0_12_0_0; # ptr-poker breaks on MacOS without SSE2 optimizations # https://github.com/nikita-volkov/ptr-poker/issues/11 ptr-poker = hself.callCabal2nix "ptr-poker" inputs.ptr-poker { }; ormolu = hself.ormolu_0_5_3_0; stylish-haskell = appendConfigureFlag hsuper.stylish-haskell "-fghc-lib"; # Re-generate HLS drv excluding some plugins haskell-language-server = hself.callCabal2nixWithOptions "haskell-language-server" ./. # Pedantic cannot be used due to -Werror=unused-top-binds # Check must be disabled due to some missing required files (pkgs.lib.concatStringsSep " " [ "--no-check" "-f-pedantic" "-f-hlint" ]) { }; }); in { inherit disabledPlugins; tweakHpkgs = hpkgs: hpkgs.extend hpkgsOverride; }