|
22 | 22 | flake = false;
|
23 | 23 | };
|
24 | 24 |
|
25 |
| - lsp-source = { |
26 |
| - url = "https://hackage.haskell.org/package/lsp-1.4.0.0/lsp-1.4.0.0.tar.gz"; |
27 |
| - flake = false; |
28 |
| - }; |
29 |
| - lsp-types-source = { |
30 |
| - url = "https://hackage.haskell.org/package/lsp-types-1.4.0.0/lsp-types-1.4.0.0.tar.gz"; |
31 |
| - flake = false; |
32 |
| - }; |
33 |
| - lsp-test-source = { |
34 |
| - url = "https://hackage.haskell.org/package/lsp-test-0.14.0.2/lsp-test-0.14.0.2.tar.gz"; |
35 |
| - flake = false; |
36 |
| - }; |
| 25 | + hackage-sources.url = "path:./flake_hackage"; |
37 | 26 | };
|
38 | 27 | outputs =
|
39 |
| - { self, nixpkgs, flake-compat, flake-utils, pre-commit-hooks, gitignore, lsp-source, lsp-types-source, lsp-test-source }: |
| 28 | + { self, nixpkgs, flake-compat, flake-utils, pre-commit-hooks, gitignore, hackage-sources }: |
40 | 29 | {
|
41 | 30 | overlay = final: prev:
|
42 | 31 | with prev;
|
43 | 32 | let
|
| 33 | + hackage = hackage-sources.inputs; |
| 34 | + |
44 | 35 | haskellOverrides = hself: hsuper: {
|
45 | 36 | # we override mkDerivation here to apply the following
|
46 | 37 | # tweak to each haskell package:
|
|
88 | 79 | # We need an older version
|
89 | 80 | hiedb = hself.hiedb_0_4_1_0;
|
90 | 81 |
|
91 |
| - lsp = hsuper.callCabal2nix "lsp" lsp-source {}; |
92 |
| - lsp-types = hsuper.callCabal2nix "lsp-types" lsp-types-source {}; |
93 |
| - lsp-test = hsuper.callCabal2nix "lsp-test" lsp-test-source {}; |
| 82 | + lsp = hsuper.callCabal2nix "lsp" hackage.lsp {}; |
| 83 | + lsp-types = hsuper.callCabal2nix "lsp-types" hackage.lsp-types {}; |
| 84 | + lsp-test = hsuper.callCabal2nix "lsp-test" hackage.lsp-test {}; |
94 | 85 |
|
95 | 86 | implicit-hie-cradle = hself.callCabal2nix "implicit-hie-cradle"
|
96 | 87 | (builtins.fetchTarball {
|
|
144 | 135 | } // (flake-utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ])
|
145 | 136 | (system:
|
146 | 137 | let
|
| 138 | + hackage = hackage-sources.inputs; |
147 | 139 | pkgs = import nixpkgs {
|
148 | 140 | inherit system;
|
149 | 141 | overlays = [ self.overlay ];
|
|
182 | 174 | };
|
183 | 175 |
|
184 | 176 | ghc901Config = (import ./configuration-ghc-901.nix) { inherit pkgs; };
|
| 177 | + ghc921Config = (import ./configuration-ghc-921.nix) { inherit pkgs hackage; }; |
185 | 178 |
|
186 | 179 | # GHC versions
|
187 | 180 | ghcDefault = pkgs.hlsHpkgs ("ghc"
|
|
190 | 183 | ghc884 = pkgs.hlsHpkgs "ghc884";
|
191 | 184 | ghc8107 = pkgs.hlsHpkgs "ghc8107";
|
192 | 185 | ghc901 = ghc901Config.tweakHpkgs (pkgs.hlsHpkgs "ghc901");
|
| 186 | + ghc921 = ghc921Config.tweakHpkgs (pkgs.hlsHpkgs "ghc921"); |
193 | 187 |
|
194 | 188 | # For markdown support
|
195 | 189 | myst-parser = pkgs.python3Packages.callPackage ./myst-parser.nix {};
|
|
224 | 218 | map (name: p.${name}) (attrNames
|
225 | 219 | (if hpkgs.ghc.version == "9.0.1" then
|
226 | 220 | removeAttrs hlsSources ghc901Config.disabledPlugins
|
| 221 | + else if hpkgs.ghc.version == "9.2.1" then |
| 222 | + removeAttrs hlsSources ghc921Config.disabledPlugins |
227 | 223 | else
|
228 | 224 | hlsSources));
|
229 | 225 | buildInputs = [ gmp zlib ncurses capstone tracy (gen-hls-changelogs hpkgs) pythonWithPackages ]
|
|
266 | 262 | haskell-language-server-884-dev = mkDevShell ghc884;
|
267 | 263 | haskell-language-server-8107-dev = mkDevShell ghc8107;
|
268 | 264 | haskell-language-server-901-dev = mkDevShell ghc901;
|
| 265 | + haskell-language-server-921-dev = mkDevShell ghc921; |
269 | 266 |
|
270 | 267 | # hls package
|
271 | 268 | haskell-language-server = mkExe ghcDefault;
|
272 | 269 | haskell-language-server-884 = mkExe ghc884;
|
273 | 270 | haskell-language-server-8107 = mkExe ghc8107;
|
274 | 271 | haskell-language-server-901 = mkExe ghc901;
|
| 272 | + haskell-language-server-921 = mkExe ghc921; |
275 | 273 |
|
276 | 274 | # docs
|
277 | 275 | docs = docs;
|
|
0 commit comments