|
8 | 8 | description = "haskell language server flake";
|
9 | 9 |
|
10 | 10 | inputs = {
|
11 |
| - nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; |
| 11 | + nixpkgs.url = "github:NixOS/nixpkgs/haskell-updates"; |
12 | 12 | flake-compat = {
|
13 | 13 | url = "github:edolstra/flake-compat";
|
14 | 14 | flake = false;
|
|
40 | 40 | url = "https://hackage.haskell.org/package/stylish-haskell-0.14.4.0/stylish-haskell-0.14.4.0.tar.gz";
|
41 | 41 | flake = false;
|
42 | 42 | };
|
| 43 | + |
| 44 | + haskell-unix-compat = { |
| 45 | + url = "github:jacobstanley/unix-compat/3f6bd688cb56224955e77245a2649ba99ea32fff"; |
| 46 | + flake = false; |
| 47 | + }; |
| 48 | + haskell-hiedb = { |
| 49 | + url = "github:wz1000/HieDb"; |
| 50 | + flake = false; |
| 51 | + }; |
| 52 | + |
| 53 | + haskell-hie-bios = { |
| 54 | + url = "github:mpickering/hie-bios"; |
| 55 | + flake = false; |
| 56 | + }; |
| 57 | + |
| 58 | + haskell-ghc-exactprint = { |
| 59 | + url = "github:alanz/ghc-exactprint/ghc-9.6"; |
| 60 | + flake = false; |
| 61 | + }; |
43 | 62 | };
|
44 | 63 | outputs =
|
45 | 64 | inputs@{ self, nixpkgs, flake-compat, flake-utils, gitignore, ... }:
|
|
172 | 191 | };
|
173 | 192 |
|
174 | 193 | ghc902Config = (import ./configuration-ghc-90.nix) { inherit pkgs inputs; };
|
175 |
| - ghc927Config = (import ./configuration-ghc-92.nix) { inherit pkgs inputs; }; |
| 194 | + ghc926Config = (import ./configuration-ghc-92.nix) { inherit pkgs inputs; }; |
176 | 195 | ghc944Config = (import ./configuration-ghc-94.nix) { inherit pkgs inputs; };
|
| 196 | + ghc961Config = (import ./configuration-ghc-96.nix) { inherit pkgs inputs; }; |
177 | 197 |
|
178 | 198 | # GHC versions
|
179 | 199 | # While HLS still works fine with 8.10 GHCs, we only support the versions that are cached
|
|
182 | 202 | ghcVersion = "ghc" + (pkgs.lib.replaceStrings ["."] [""] pkgs.haskellPackages.ghc.version);
|
183 | 203 | cases = {
|
184 | 204 | ghc902 = ghc902Config.tweakHpkgs (pkgs.hlsHpkgs "ghc902");
|
185 |
| - ghc927 = ghc927Config.tweakHpkgs (pkgs.hlsHpkgs "ghc927"); |
| 205 | + ghc926 = ghc926Config.tweakHpkgs (pkgs.hlsHpkgs "ghc926"); |
186 | 206 | ghc944 = ghc944Config.tweakHpkgs (pkgs.hlsHpkgs "ghc944");
|
| 207 | + ghc961 = ghc961Config.tweakHpkgs (pkgs.hlsHpkgs "ghc961"); |
187 | 208 | };
|
188 | 209 | in { default = cases."${ghcVersion}"; } // cases;
|
189 | 210 |
|
190 | 211 | ghc902 = supportedGHCs.ghc902;
|
191 |
| - ghc927 = supportedGHCs.ghc927; |
| 212 | + ghc926 = supportedGHCs.ghc926; |
192 | 213 | ghc944 = supportedGHCs.ghc944;
|
| 214 | + ghc961 = supportedGHCs.ghc961; |
193 | 215 | ghcDefault = supportedGHCs.default;
|
194 | 216 |
|
195 | 217 | pythonWithPackages = pkgs.python3.withPackages (ps: [ps.sphinx ps.myst-parser ps.sphinx_rtd_theme ps.pip]);
|
|
310 | 332 | simpleDevShells = {
|
311 | 333 | haskell-language-server-dev = mkDevShell ghcDefault "cabal.project";
|
312 | 334 | haskell-language-server-902-dev = mkDevShell ghc902 "cabal.project";
|
313 |
| - haskell-language-server-927-dev = mkDevShell ghc927 "cabal.project"; |
| 335 | + haskell-language-server-926-dev = mkDevShell ghc926 "cabal.project"; |
314 | 336 | haskell-language-server-944-dev = mkDevShell ghc944 "cabal.project";
|
| 337 | + haskell-language-server-961-dev = mkDevShell ghc961 "cabal.project"; |
315 | 338 | };
|
316 | 339 |
|
317 | 340 | # Developement shell, haskell packages are also provided by nix
|
318 | 341 | nixDevShells = {
|
319 | 342 | haskell-language-server-dev-nix = mkDevShellWithNixDeps ghcDefault "cabal.project";
|
320 | 343 | haskell-language-server-902-dev-nix = mkDevShellWithNixDeps ghc902 "cabal.project";
|
321 |
| - haskell-language-server-927-dev-nix = mkDevShellWithNixDeps ghc927 "cabal.project"; |
| 344 | + haskell-language-server-926-dev-nix = mkDevShellWithNixDeps ghc926 "cabal.project"; |
322 | 345 | haskell-language-server-944-dev-nix = mkDevShellWithNixDeps ghc944 "cabal.project";
|
| 346 | + haskell-language-server-961-dev-nix = mkDevShellWithNixDeps ghc961 "cabal.project"; |
323 | 347 | };
|
324 | 348 |
|
325 | 349 | # The default shell provided by Nixpkgs for a Haskell package (i.e. the
|
326 | 350 | # one that comes in the `.env` attribute)
|
327 | 351 | envShells = {
|
328 | 352 | haskell-language-server-dev-env = mkEnvShell ghcDefault;
|
329 | 353 | haskell-language-server-902-dev-env = mkEnvShell ghc902;
|
330 |
| - haskell-language-server-927-dev-env = mkEnvShell ghc927; |
| 354 | + haskell-language-server-926-dev-env = mkEnvShell ghc926; |
331 | 355 | haskell-language-server-944-dev-env = mkEnvShell ghc944;
|
| 356 | + haskell-language-server-961-dev-env = mkEnvShell ghc961; |
332 | 357 | };
|
333 | 358 |
|
334 | 359 | allPackages = {
|
335 | 360 | haskell-language-server = mkExe ghcDefault;
|
336 | 361 | haskell-language-server-902 = mkExe ghc902;
|
337 |
| - haskell-language-server-927 = mkExe ghc927; |
| 362 | + haskell-language-server-926 = mkExe ghc926; |
338 | 363 | haskell-language-server-944 = mkExe ghc944;
|
| 364 | + haskell-language-server-961 = mkExe ghc961; |
339 | 365 | };
|
340 | 366 |
|
341 | 367 | devShells = simpleDevShells // nixDevShells // envShells // {
|
|
354 | 380 | all-haskell-language-server = linkFarmFromDrvs "all-haskell-language-server" (lib.unique (builtins.attrValues allPackages));
|
355 | 381 |
|
356 | 382 | # Same for all shells
|
357 |
| - all-nix-dev-shells = linkFarmFromDrvs "all-dev-shells" |
358 |
| - (builtins.map (shell: shell.inputDerivation) (lib.unique (builtins.attrValues nixDevShells))); |
| 383 | + # We try to build as much as possible, but not much shells are |
| 384 | + # working (especially on darwing), so this list is limited. |
| 385 | + all-nix-dev-shells = linkFarmFromDrvs "all-dev-shells" (builtins.map (shell: shell.inputDerivation) (lib.unique [nixDevShells.haskell-language-server-dev-nix])); |
359 | 386 |
|
360 | 387 | all-simple-dev-shells = linkFarmFromDrvs "all-simple-dev-shells"
|
361 | 388 | (builtins.map (shell: shell.inputDerivation) (lib.unique (builtins.attrValues simpleDevShells)));
|
|
0 commit comments