about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/make-package-set.nix
diff options
context:
space:
mode:
authorJoe Hermaszewski <git@monoid.al>2020-11-11 11:02:05 +0800
committerPeter Simons <simons@cryp.to>2020-11-13 21:37:57 +0100
commita32c231007afc4a934bcca47a9ac7edb44a5f784 (patch)
treeb08be25d4be90339fa9cd8bdb125caa201597997 /pkgs/development/haskell-modules/make-package-set.nix
parent07e697d22d91a4f1ae75da32c457a432f46d7bd1 (diff)
haskell: add withHoogle option to developPackage
Diffstat (limited to 'pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix11
1 files changed, 9 insertions, 2 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index 77060c8d86417..2ce8ad989f8dd 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -221,6 +221,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
     #   , overrides : Defaulted (HaskellPackageOverrideSet)
     #   , modifier : Defaulted
     #   , returnShellEnv : Defaulted
+    #   , withHoogle : Defaulted
     #   } -> NixShellAwareDerivation
     # Given a path to a haskell package directory, an optional package name
     # which defaults to the base name of the path, an optional set of source
@@ -231,20 +232,26 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
     # If 'returnShellEnv' is true this returns a derivation which will give you
     # an environment suitable for developing the listed packages with an
     # incremental tool like cabal-install.
+    # If 'withHoogle' is true (the default if a shell environment is requested)
+    # then 'ghcWithHoogle' is used to generate the derivation (instead of
+    # 'ghcWithPackages'), see the documentation there for more information.
     developPackage =
       { root
       , name ? builtins.baseNameOf root
       , source-overrides ? {}
       , overrides ? self: super: {}
       , modifier ? drv: drv
-      , returnShellEnv ? pkgs.lib.inNixShell }:
+      , returnShellEnv ? pkgs.lib.inNixShell
+      , withHoogle ? returnShellEnv }:
       let drv =
         (extensible-self.extend
            (pkgs.lib.composeExtensions
               (self.packageSourceOverrides source-overrides)
               overrides))
         .callCabal2nix name root {};
-      in if returnShellEnv then (modifier drv).env else modifier drv;
+      in if returnShellEnv
+           then (modifier drv).envFunc {inherit withHoogle;}
+           else modifier drv;
 
     ghcWithPackages = selectFrom: withPackages (selectFrom self);