haskell.packages.ghc902.haskell-language-server: fix

This commit is contained in:
Naïm Favier 2022-12-13 01:02:01 +01:00
parent 8605595bca
commit 264178657f
No known key found for this signature in database
GPG key ID: 95AFCE8211908325
3 changed files with 19 additions and 3 deletions

View file

@ -92,6 +92,7 @@ self: super: {
split = doJailbreak super.split;
tar = doJailbreak super.tar;
time-compat = doJailbreak super.time-compat;
tuple = addBuildDepend self.base-orphans super.tuple;
vector = doJailbreak (dontCheck super.vector);
vector-binary-instances = doJailbreak super.vector-binary-instances;
vector-th-unbox = doJailbreak super.vector-th-unbox;
@ -106,11 +107,19 @@ self: super: {
sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
}) (doJailbreak super.language-haskell-extract);
haskell-language-server = super.haskell-language-server.overrideScope (lself: lsuper: {
haskell-language-server = let
# These aren't included in hackage-packages.nix because hackage2nix is configured for GHC 9.2, under which these plugins aren't supported.
additionalDeps = with super.haskell-language-server.scope; [ hls-haddock-comments-plugin hls-splice-plugin hls-tactics-plugin ];
in addBuildDepends additionalDeps (super.haskell-language-server.overrideScope (lself: lsuper: {
# Needed for modern ormolu and fourmolu.
# Apply this here and not in common, because other ghc versions offer different Cabal versions.
Cabal = lself.Cabal_3_6_3_0;
});
}));
# This package is marked as unbuildable on GHC 9.2, so hackage2nix doesn't include any dependencies.
hls-haddock-comments-plugin = addBuildDepends (with self.hls-haddock-comments-plugin.scope; [
ghc-exactprint ghcide hls-plugin-api hls-refactor-plugin lsp-types unordered-containers
]) super.hls-haddock-comments-plugin;
# The test suite depends on ChasingBottoms, which is broken with ghc-9.0.x.
unordered-containers = dontCheck super.unordered-containers;
@ -157,4 +166,8 @@ self: super: {
# Restrictive upper bound on base and containers
sv2v = doJailbreak super.sv2v;
# Later versions only support GHC >= 9.2
ghc-exactprint = self.ghc-exactprint_0_6_4;
apply-refact = self.apply-refact_0_9_3_0;
}

View file

@ -101,6 +101,7 @@ extra-packages:
- Cabal == 3.6.* # required for cabal-install-parsers etc.
- Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
- aeson < 2 # required by pantry-0.5.2
- apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2
- attoparsec == 0.13.* # 2022-02-23: Needed to compile elm for now
- base16-bytestring < 1 # required for cabal-install etc.
- basement < 0.0.15 # 2022-08-30: last version to support GHC < 8.10
@ -120,6 +121,7 @@ extra-packages:
- fourmolu == 0.3.0.0 # 2022-09-21: needed for hls on ghc 8.8
- ghc-api-compat == 8.10.7 # 2022-02-17: preserve for GHC 8.10.7
- ghc-api-compat == 8.6 # 2021-09-07: preserve for GHC 8.8.4
- ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2
- ghc-lib == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7
- ghc-lib == 9.2.* # 2022-02-17: preserve for GHC 9.2
- ghc-lib-parser == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7

View file

@ -93,8 +93,9 @@ let
# Converts a returned function to a functor attribute set if necessary
ensureAttrs = v: if builtins.isFunction v then { __functor = _: v; } else v;
# this wraps the `drv` function to add a `overrideScope` function to the result.
# this wraps the `drv` function to add `scope` and `overrideScope` to the result.
drvScope = allArgs: ensureAttrs (drv allArgs) // {
inherit scope;
overrideScope = f:
let newScope = mkScope (fix' (extends f scope.__unfix__));
# note that we have to be careful here: `allArgs` includes the auto-arguments that