|  | 
| 73 | 73 |           tweaks = hself: hsuper: | 
| 74 | 74 |             with haskell.lib; { | 
| 75 | 75 | 
 | 
| 76 |  | -              # https://github.com/haskell/haskell-language-server/pull/1858 | 
| 77 |  | -              # Remove this override when nixpkgs has this package | 
| 78 |  | -              apply-refact_0_9_3_0 = hself.callCabal2nix "apply-refact" | 
|  | 76 | +              hls-tactics-plugin = hsuper.hls-tactics-plugin.override { | 
|  | 77 | +                refinery = hself.refinery_0_3_0_0; | 
|  | 78 | +              }; | 
|  | 79 | + | 
|  | 80 | +              hiedb = hself.callCabal2nix "hiedb" | 
| 79 | 81 |                 (builtins.fetchTarball { | 
| 80 | 82 |                   url = | 
| 81 |  | -                    "https://hackage.haskell.org/package/apply-refact-0.9.3.0/apply-refact-0.9.3.0.tar.gz"; | 
|  | 83 | +                    "https://hackage.haskell.org/package/hiedb-0.4.0.0/hiedb-0.4.0.0.tar.gz"; | 
| 82 | 84 |                   sha256 = | 
| 83 |  | -                    "1jfq1aw91finlpq5nn7a96za4c8j13jk6jmx2867fildxwrik2qj"; | 
|  | 85 | +                    "13jz8c46zfpf54ya2wsv4akhn0wcfc6qjazqsjfir5gpvsi7v8xr"; | 
| 84 | 86 |                 }) { }; | 
| 85 | 87 | 
 | 
| 86 |  | -              hls-hlint-plugin = hsuper.hls-hlint-plugin.override { | 
| 87 |  | -                hlint = hself.hlint_3_2_7; | 
| 88 |  | -                apply-refact = hself.apply-refact_0_9_3_0; | 
| 89 |  | -              }; | 
| 90 |  | - | 
| 91 |  | -              hls-tactics-plugin = hsuper.hls-tactics-plugin.override { | 
| 92 |  | -                refinery = hself.refinery_0_3_0_0; | 
| 93 |  | -              }; | 
| 94 |  | - | 
| 95 | 88 |             }; | 
| 96 | 89 | 
 | 
| 97 | 90 |           hlsSources = | 
|  | 
| 112 | 105 |           hlsHpkgs = compiler: extended haskell.packages.${compiler}; | 
| 113 | 106 | 
 | 
| 114 | 107 |           # Support of GenChangelogs.hs | 
| 115 |  | -          gen-hls-changelogs = | 
| 116 |  | -            let myGHC = haskellPackages.ghcWithPackages (p: with p; [ github ]); | 
|  | 108 | +          gen-hls-changelogs = hpkgs: | 
|  | 109 | +            let myGHC = hpkgs.ghcWithPackages (p: with p; [ github ]); | 
| 117 | 110 |             in runCommand "gen-hls-changelogs" { | 
| 118 | 111 |               passAsFile = [ "text" ]; | 
| 119 | 112 |               preferLocalBuild = true; | 
|  | 
| 137 | 130 |         }; | 
| 138 | 131 | 
 | 
| 139 | 132 |         # Pre-commit hooks to run stylish-haskell | 
| 140 |  | -        pre-commit-check = pre-commit-hooks.lib.${system}.run { | 
|  | 133 | +        pre-commit-check = hpkgs: pre-commit-hooks.lib.${system}.run { | 
| 141 | 134 |           src = ./.; | 
| 142 | 135 |           hooks = { | 
| 143 | 136 |             stylish-haskell.enable = true; | 
|  | 137 | +            # use stylish-haskell with our target ghc | 
|  | 138 | +            stylish-haskell.entry = "${hpkgs.stylish-haskell}/bin/stylish-haskell --inplace"; | 
| 144 | 139 |             stylish-haskell.excludes = [ | 
| 145 | 140 |               # Ignored files | 
| 146 | 141 |               "^Setup.hs$" | 
|  | 
| 178 | 173 |             doBenchmark = true; | 
| 179 | 174 |             packages = p: | 
| 180 | 175 |               with builtins; | 
| 181 |  | -              map (name: p.${name}) (attrNames pkgs.hlsSources); | 
| 182 |  | -            buildInputs = [ gmp zlib ncurses capstone tracy gen-hls-changelogs ] | 
| 183 |  | -              ++ (with haskellPackages; [ | 
|  | 176 | +              map (name: p.${name}) (attrNames hlsSources); | 
|  | 177 | +            buildInputs = [ gmp zlib ncurses capstone tracy (gen-hls-changelogs hpkgs) ] | 
|  | 178 | +              ++ (with hpkgs; [ | 
| 184 | 179 |                 cabal-install | 
| 185 | 180 |                 hlint | 
| 186 | 181 |                 ormolu | 
|  | 
| 193 | 188 |               export LD_LIBRARY_PATH=${gmp}/lib:${zlib}/lib:${ncurses}/lib:${capstone}/lib | 
| 194 | 189 |               export DYLD_LIBRARY_PATH=${gmp}/lib:${zlib}/lib:${ncurses}/lib:${capstone}/lib | 
| 195 | 190 |               export PATH=$PATH:$HOME/.local/bin | 
| 196 |  | -              ${pre-commit-check.shellHook} | 
|  | 191 | +              ${(pre-commit-check hpkgs).shellHook} | 
| 197 | 192 |             ''; | 
| 198 | 193 |           }; | 
| 199 | 194 |         # Create a hls executable | 
|  | 
| 218 | 213 |           haskell-language-server-884-dev = mkDevShell ghc884; | 
| 219 | 214 |           haskell-language-server-8104-dev = mkDevShell ghc8104; | 
| 220 | 215 |           haskell-language-server-8105-dev = mkDevShell ghc8105; | 
| 221 |  | -          haskell-language-server-901-dev = mkDevShell ghc901; | 
|  | 216 | +          haskell-language-server-901-dev = builtins.throw "Nix expression for developing HLS in GHC 9.0.1 is not yet available"; # mkDevShell ghc901; | 
| 222 | 217 | 
 | 
| 223 | 218 |           # hls package | 
| 224 | 219 |           haskell-language-server = mkExe ghcDefault; | 
| 225 | 220 |           haskell-language-server-884 = mkExe ghc884; | 
| 226 | 221 |           haskell-language-server-8104 = mkExe ghc8104; | 
| 227 | 222 |           haskell-language-server-8105 = mkExe ghc8105; | 
| 228 |  | -          haskell-language-server-901 = mkExe ghc901; | 
|  | 223 | +          haskell-language-server-901 = builtins.throw "Nix expression for building HLS in GHC 9.0.1 is not yet available"; # mkExe ghc901; | 
| 229 | 224 |         }; | 
| 230 | 225 | 
 | 
| 231 | 226 |         defaultPackage = packages.haskell-language-server; | 
|  | 
0 commit comments