@@ -207,13 +207,14 @@ in rec {
207207 , shellToolOverrides ? _: _: {}
208208 , withHoogle ? false # Setting this to `true` makes shell reloading far slower
209209 , __closureCompilerOptimizationLevel ? "ADVANCED" # Set this to `null` to skip the closure-compiler step
210+ , __withGhcide ? false
210211 }:
211212 let
212213 allConfig = nixpkgs.lib.makeExtensible (self: {
213214 base = base';
214215 inherit args;
215216 userSettings = {
216− inherit android ios packages overrides tools shellToolOverrides withHoogle __closureCompilerOptimizationLevel;
217+ inherit android ios packages overrides tools shellToolOverrides withHoogle __closureCompilerOptimizationLevel __withGhcide;
217218 staticFiles = if staticFiles == null then self.base + /static else staticFiles;
218219 };
219220 frontendName = "frontend";
@@ -270,9 +271,17 @@ in rec {
270271 self.frontendName
271272 ];
272273
274+ shellToolOverrides = lib.composeExtensions
275+ self.userSettings.shellToolOverrides
276+ (if self.userSettings.__withGhcide
277+ then (import ./haskell-overlays/ghcide.nix)
278+ else (_: _: {})
279+ );
280+
273281 project = reflexPlatformProject ({...}: self.projectConfig);
274282 projectConfig = {
275− inherit (self.userSettings) shellToolOverrides tools withHoogle;
283+ inherit (self) shellToolOverrides;
284+ inherit (self.userSettings) tools withHoogle;
276285 overrides = self.totalOverrides;
277286 packages = self.combinedPackages;
278287 shells = {