summary refs log tree commit diff
path: root/pkgs/development/haskell-modules
diff options
context:
space:
mode:
authormaralorn <mail@maralorn.de>2022-09-20 02:49:35 +0200
committermaralorn <mail@maralorn.de>2022-09-21 05:23:07 +0200
commit7c2fda45cc67990994ee160309fb5ed2e8425ff3 (patch)
tree453ed0a86849d206967887c105301a3c00f392e9 /pkgs/development/haskell-modules
parenta7d50b4e0988e4f53d2d3629c7b5f57c2736480f (diff)
downloadnixpkgs-7c2fda45cc67990994ee160309fb5ed2e8425ff3.tar
nixpkgs-7c2fda45cc67990994ee160309fb5ed2e8425ff3.tar.gz
nixpkgs-7c2fda45cc67990994ee160309fb5ed2e8425ff3.tar.bz2
nixpkgs-7c2fda45cc67990994ee160309fb5ed2e8425ff3.tar.lz
nixpkgs-7c2fda45cc67990994ee160309fb5ed2e8425ff3.tar.xz
nixpkgs-7c2fda45cc67990994ee160309fb5ed2e8425ff3.tar.zst
nixpkgs-7c2fda45cc67990994ee160309fb5ed2e8425ff3.zip
haskell-language-server: 1.7.0.0 -> 1.8.0.0
Diffstat (limited to 'pkgs/development/haskell-modules')
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix68
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix35
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix31
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix31
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml10
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml4
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix18
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix255
9 files changed, 256 insertions, 202 deletions
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 9abcbaa8330..6761be0d34d 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1286,13 +1286,17 @@ self: super: {
   # upstream: https://github.com/obsidiansystems/which/pull/6
   which = doJailbreak super.which;
 
-  # the test suite attempts to run the binaries built in this package
-  # through $PATH but they aren't in $PATH
-  dhall-lsp-server = dontCheck super.dhall-lsp-server;
-
   # https://github.com/ocharles/weeder/issues/15
   weeder = doJailbreak super.weeder;
 
+  # 2022-09-20: We have overridden lsp to not be the stackage version.
+  # dhall-lsp-server needs the older 1.4.0.0 lsp
+  dhall-lsp-server = super.dhall-lsp-server.override {
+    lsp = dontCheck (super.lsp_1_4_0_0.override {
+      lsp-types = super.lsp-types_1_4_0_1;
+    });
+  };
+
   # Requested version bump on upstream https://github.com/obsidiansystems/constraints-extras/issues/32
   constraints-extras = doJailbreak super.constraints-extras;
 
@@ -1518,20 +1522,22 @@ self: super: {
     })
   ] super.binary-strict;
 
-  # 2020-11-19: Checks nearly fixed, but still disabled because of flaky tests:
-  # https://github.com/haskell/haskell-language-server/issues/610
-  # https://github.com/haskell/haskell-language-server/issues/611
-  haskell-language-server = lib.pipe super.haskell-language-server [
+  haskell-language-server = (lib.pipe super.haskell-language-server [
     dontCheck
-    (appendConfigureFlags ["-ftactics"])
-    (overrideCabal (old: {
-      libraryHaskellDepends = old.libraryHaskellDepends ++ [
-        super.hls-tactics-plugin
-      ];
-    }))
-  ];
+    (disableCabalFlag "stan") # Sorry stan is totally unmaintained and terrible to get to run. It only works on ghc 8.8 or 8.10 anyways …
+  ]).overrideScope (lself: lsuper: {
+    # For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
+    hlint = enableCabalFlag "ghc-lib" lself.hlint_3_4_1;
+    ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
+    ormolu = doJailbreak lself.ormolu_0_5_0_1;
+    fourmolu = doJailbreak lself.fourmolu_0_8_2_0;
+    ghc-lib-parser = lself.ghc-lib-parser_9_2_4_20220729;
+  });
 
-  lsp = assert super.lsp.version == "1.4.0.0"; dontCheck super.lsp;
+  # For -f-auto see cabal.project in haskell-language-server.
+  ghc-lib-parser-ex_9_2_0_4 = disableCabalFlag "auto" (super.ghc-lib-parser-ex_9_2_0_4.override {
+    ghc-lib-parser = self.ghc-lib-parser_9_2_4_20220729;
+  });
 
   # 2021-05-08: Tests fail: https://github.com/haskell/haskell-language-server/issues/1809
   hls-eval-plugin = dontCheck super.hls-eval-plugin;
@@ -1552,6 +1558,9 @@ self: super: {
   # https://github.com/haskell/haskell-language-server/issues/2375
   hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;
 
+  # 2022-09-19: https://github.com/haskell/haskell-language-server/issues/3200
+  hls-refactor-plugin = dontCheck super.hls-refactor-plugin;
+
   # 2021-03-21: Test hangs
   # https://github.com/haskell/haskell-language-server/issues/1562
   # 2021-11-13: Too strict upper bound on implicit-hie-cradle
@@ -2098,19 +2107,7 @@ self: super: {
 
   # 2022-03-21: Newest stylish-haskell needs ghc-lib-parser-9_2
   stylish-haskell = (super.stylish-haskell.override {
-    ghc-lib-parser = super.ghc-lib-parser_9_2_4_20220729;
-    ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_1_1;
-  });
-
-  ghc-lib-parser-ex_9_2_1_1 = super.ghc-lib-parser-ex_9_2_1_1.override {
-    ghc-lib-parser = super.ghc-lib-parser_9_2_4_20220729;
-  };
-
-  ghc-lib-parser-ex_9_2_0_4 = super.ghc-lib-parser-ex_9_2_0_4.override {
-    ghc-lib-parser = super.ghc-lib-parser_9_2_4_20220729;
-  };
-
-  hlint_3_4_1 = doDistribute (super.hlint_3_4_1.override {
+    ghc-lib-parser = self.ghc-lib-parser_9_2_4_20220729;
     ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
   });
 
@@ -2141,10 +2138,6 @@ self: super: {
   # 2021-08-18: streamly-posix was released with hspec 2.8.2, but it works with older versions too.
   streamly-posix = doJailbreak super.streamly-posix;
 
-  # Not running the "example" test because it requires a binary from lsps test
-  # suite which is not part of the output of lsp.
-  lsp-test = overrideCabal (old: { testTarget = "tests func-test"; }) super.lsp-test;
-
   # 2021-09-14: Tests are flaky.
   hls-splice-plugin = dontCheck super.hls-splice-plugin;
 
@@ -2492,13 +2485,8 @@ self: super: {
   # has been resolved.
   lucid-htmx = doJailbreak super.lucid-htmx;
 
-  lsp_1_5_0_0 = doDistribute (super.lsp_1_5_0_0.override {
-    lsp-types = self.lsp-types_1_5_0_0;
-  });
-
-  futhark = super.futhark.override {
-    lsp = self.lsp_1_5_0_0;
-  };
+  # 2022-09-20: Restrictive upper bound on lsp
+  futhark = doJailbreak super.futhark;
 
   # Too strict bounds on hspec
   # https://github.com/klapaucius/vector-hashtables/issues/11
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 4e71c26a504..1eb8e4af80f 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -96,30 +96,19 @@ self: super: {
       executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
     }) super.hnix);
 
-  mime-string = disableOptimization super.mime-string;
+  haskell-language-server = addBuildDepend self.hls-brittany-plugin (super.haskell-language-server.overrideScope (lself: lsuper: {
+    Cabal = lself.Cabal_3_6_3_0;
+    aeson = lself.aeson_1_5_6_0;
+    lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
+  }));
+
+  hls-brittany-plugin = super.hls-brittany-plugin.overrideScope (lself: lsuper: {
+    brittany = doJailbreak lself.brittany_0_13_1_2;
+    aeson = lself.aeson_1_5_6_0;
+    lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
+  });
 
-  # Older compilers need the latest ghc-lib to build this package.
-  # Fix build with ghc-lib >= 9.0 and ghc <= 8.10.7
-  # https://github.com/haskell/haskell-language-server/issues/2728
-  hls-hlint-plugin = addBuildDepend self.ghc-lib (appendPatch (pkgs.fetchpatch {
-    name = "hls-hlint-plugin-workaround.patch";
-    url = "https://github.com/haskell/haskell-language-server/pull/2854.patch";
-    hash = "sha256-bLGu0OQtXsmMF3rZM+R6k7bsZm4Vgf2r0ert5Wunong=";
-    stripLen = 2;
-    includes = ["src/Ide/Plugin/Hlint.hs"];
-  }) super.hls-hlint-plugin);
-
-  haskell-language-server = appendConfigureFlags [
-      "-f-stylishhaskell"
-      "-f-brittany"
-    ]
-  super.haskell-language-server;
-
-  # has a restrictive lower bound on Cabal
-  fourmolu = doJailbreak super.fourmolu;
-
-  # ormolu 0.3 requires Cabal == 3.4
-  ormolu = super.ormolu_0_2_0_0;
+  mime-string = disableOptimization super.mime-string;
 
   # weeder 2.3.0 no longer supports GHC 8.10
   weeder = doDistribute (doJailbreak self.weeder_2_2_0);
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index 48cb8ed8c08..05585b88565 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -141,20 +141,23 @@ self: super: {
 
   mime-string = disableOptimization super.mime-string;
 
-  # Older compilers need the latest ghc-lib to build this package.
-  hls-hlint-plugin = addBuildDepend self.ghc-lib (overrideCabal (drv: {
-      # Workaround for https://github.com/haskell/haskell-language-server/issues/2728
-      postPatch = ''
-        sed -i 's/(GHC.RealSrcSpan x,/(GHC.RealSrcSpan x Nothing,/' src/Ide/Plugin/Hlint.hs
-      '';
-    })
-     super.hls-hlint-plugin);
-
-  haskell-language-server = appendConfigureFlags [
-      "-f-stylishhaskell"
-      "-f-brittany"
-    ]
-  super.haskell-language-server;
+  haskell-language-server = addBuildDepend self.hls-brittany-plugin (super.haskell-language-server.overrideScope (lself: lsuper: {
+    ghc-lib-parser = lself.ghc-lib-parser_8_10_7_20220219;
+    ghc-lib-parser-ex = addBuildDepend lself.ghc-lib-parser lself.ghc-lib-parser-ex_8_10_0_24;
+    # Pick old ormolu and fourmolu because ghc-lib-parser is not compatible
+    ormolu = doJailbreak lself.ormolu_0_1_4_1;
+    fourmolu = doJailbreak lself.fourmolu_0_3_0_0;
+    hlint = lself.hlint_3_2_8;
+    aeson = lself.aeson_1_5_6_0;
+    stylish-haskell = lself.stylish-haskell_0_13_0_0;
+    lsp-types = doJailbreak lsuper.lsp-types;
+  }));
+
+  hls-brittany-plugin = super.hls-brittany-plugin.overrideScope (lself: lsuper: {
+    brittany = doJailbreak lself.brittany_0_13_1_2;
+    aeson = lself.aeson_1_5_6_0;
+    lsp-types = doJailbreak lsuper.lsp-types;
+  });
 
   # has a restrictive lower bound on Cabal
   fourmolu = doJailbreak super.fourmolu;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index c5585825c38..9cc6a3ecd24 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -99,6 +99,12 @@ self: super: {
     sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
   }) (doJailbreak super.language-haskell-extract);
 
+  haskell-language-server = 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;
+  });
+
   # The test suite depends on ChasingBottoms, which is broken with ghc-9.0.x.
   unordered-containers = dontCheck super.unordered-containers;
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index 41228cfb294..db27788eeae 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -190,8 +190,13 @@ self: super: {
     revision = null;
   } super.memory);
 
-  # Use hlint from git for GHC 9.2.1 support
-  hlint = self.hlint_3_4_1;
+  # For -fghc-lib see cabal.project in haskell-language-server.
+  stylish-haskell = enableCabalFlag "ghc-lib" super.stylish-haskell;
+
+  # For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
+  hlint = enableCabalFlag "ghc-lib" (super.hlint_3_4_1.override {
+    ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
+  });
 
   # https://github.com/sjakobi/bsb-http-chunked/issues/38
   bsb-http-chunked = dontCheck super.bsb-http-chunked;
@@ -201,13 +206,8 @@ self: super: {
   jacinda = doDistribute super.jacinda;
   some = doJailbreak super.some;
 
-  # 2022-06-05: this is not the latest version of fourmolu because
-  # hls-fourmolu-plugin 1.0.3.0 doesn‘t support a newer one.
-  fourmolu = super.fourmolu_0_6_0_0;
-  # hls-fourmolu-plugin in this version has a to strict upper bound of fourmolu <= 0.5.0.0
-  hls-fourmolu-plugin = assert super.hls-fourmolu-plugin.version == "1.0.3.0"; doJailbreak super.hls-fourmolu-plugin;
+  fourmolu = super.fourmolu_0_8_2_0;
 
-  hls-ormolu-plugin = assert super.hls-ormolu-plugin.version == "1.0.2.1"; doJailbreak super.hls-ormolu-plugin;
   implicit-hie-cradle = doJailbreak super.implicit-hie-cradle;
   # 1.3 introduced support for GHC 9.2.x, so when this assert fails, the jailbreak can be removed
   hashtables = assert super.hashtables.version == "1.2.4.2"; doJailbreak super.hashtables;
@@ -215,20 +215,15 @@ self: super: {
   # 2022-08-01: Tests are broken on ghc 9.2.4: https://github.com/wz1000/HieDb/issues/46
   hiedb = doJailbreak (dontCheck super.hiedb);
 
+  apply-refact = doDistribute super.apply-refact_0_10_0_0;
+
   # 2022-02-05: The following plugins don‘t work yet on ghc9.2.
   # Compare: https://haskell-language-server.readthedocs.io/en/latest/supported-versions.html
-  haskell-language-server = overrideCabal (old: {libraryHaskellDepends = builtins.filter (x: x != super.hls-tactics-plugin) old.libraryHaskellDepends;})
-    (appendConfigureFlags [
-    "-f-haddockComments"
-    "-f-retrie"
-    "-f-splice"
-    "-f-tactics"
-  ] (super.haskell-language-server.override {
+  haskell-language-server = super.haskell-language-server.override {
     hls-haddock-comments-plugin = null;
-    hls-hlint-plugin = null;
-    hls-retrie-plugin = null;
     hls-splice-plugin = null;
-  }));
+    hls-tactics-plugin = null;
+  };
 
   # https://github.com/fpco/inline-c/pull/131
   inline-c-cpp =
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index d828b93d0a4..7c76ce72a57 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -113,7 +113,6 @@ extra-packages:
   - dhall == 1.29.0                     # required for ats-pkg
   - dhall == 1.38.1                     # required for spago
   - doctest == 0.18.*                   # 2021-11-19: closest to stackage version for GHC 9.*
-  - fourmolu == 0.6.0.0                 # 2022-06-05: Last fourmolu version compatible with hls 1.7/ hls-fourmolu-plugin 1.0.3.0
   - 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-lib == 8.10.7.*                 # 2022-02-17: preserve for GHC 8.10.7
@@ -121,7 +120,7 @@ extra-packages:
   - ghc-lib-parser == 8.10.7.*          # 2022-02-17: preserve for GHC 8.10.7
   - ghc-lib-parser == 9.2.*             # 2022-02-17: preserve for GHC 9.2
   - ghc-lib-parser-ex == 8.10.*         # 2022-02-17: preserve for GHC 8.10.7
-  - ghc-lib-parser-ex == 9.2.*           # 2022-07-13: preserve for GHC 9.2
+  - ghc-lib-parser-ex == 9.2.*          # 2022-07-13: preserve for GHC 9.2
   - ghc-lib-parser-ex >= 9.2.0.3 && < 9.2.1 # 2022-07-13: needed by hlint 3.4.1
   - haddock == 2.23.*                   # required on GHC < 8.10.x
   - haddock-api == 2.23.*               # required on GHC < 8.10.x
@@ -153,6 +152,13 @@ extra-packages:
   - basement < 0.0.15                   # 2022-08-30: last version to support GHC < 8.10
   - foundation < 0.0.29                 # 2022-08-30: last version to support GHC < 8.10
   - cabal-install-parsers < 0.5         # 2022-08-31: required by haskell-ci 0.14.3
+  - lsp == 1.4.0.0                      # 2022-09-18: need for dhall-lsp-server 1.1.2
+  - lsp-types == 1.4.0.1                # 2022-09-18: need for dhall-lsp-server 1.1.2
+  - stylish-haskell == 0.13.0.0         # 2022-09-19: needed for hls on ghc 8.8
+  - brittany == 0.13.1.2                # 2022-09-20: needed for hls on ghc 8.8
+  - fourmolu == 0.3.0.0                 # 2022-09-21: needed for hls on ghc 8.8
+  - ormolu == 0.1.4.1                   # 2022-09-21: needed for hls on ghc 8.8
+  - hlint == 3.2.8                      # 2022-09-21: needed for hls on ghc 8.8
 
 package-maintainers:
   abbradar:
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index d6a5bfa74c2..15e9de50789 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1048,7 +1048,6 @@ default-package-overrides:
   - hgeometry-combinatorial ==0.14
   - hid ==0.2.2
   - hidapi ==0.1.8
-  - hie-bios ==0.9.1
   - hi-file-parser ==0.1.3.0
   - higher-leveldb ==0.6.0.0
   - highlighting-kate ==0.6.4
@@ -1455,9 +1454,6 @@ default-package-overrides:
   - lpeg ==1.0.3
   - lrucache ==1.2.0.1
   - lrucaching ==0.3.3
-  - lsp ==1.4.0.0
-  - lsp-test ==0.14.0.2
-  - lsp-types ==1.4.0.1
   - lua ==2.1.0
   - lua-arbitrary ==1.0.1
   - lucid ==2.11.1
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index a728aa6376b..21016baede7 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -498,6 +498,14 @@ self: super: builtins.intersectAttrs super {
     librarySystemDepends = drv.librarySystemDepends or [] ++ [ pkgs.cyrus_sasl.dev ];
   }) super.LDAP);
 
+  # Not running the "example" test because it requires a binary from lsps test
+  # suite which is not part of the output of lsp.
+  lsp-test = overrideCabal (old: { testTarget = "tests func-test"; }) super.lsp-test;
+
+  # the test suite attempts to run the binaries built in this package
+  # through $PATH but they aren't in $PATH
+  dhall-lsp-server = dontCheck super.dhall-lsp-server;
+
   # Expects z3 to be on path so we replace it with a hard
   #
   # The tests expect additional solvers on the path, replace the
@@ -935,11 +943,11 @@ self: super: builtins.intersectAttrs super {
   }) super.procex;
 
   # Test suite wants to run main executable
-  fourmolu_0_7_0_1 = overrideCabal (drv: {
+  fourmolu_0_8_2_0 = overrideCabal (drv: {
     preCheck = drv.preCheck or "" + ''
       export PATH="$PWD/dist/build/fourmolu:$PATH"
     '';
-  }) super.fourmolu_0_7_0_1;
+  }) super.fourmolu_0_8_2_0;
 
   # Apply a patch which hardcodes the store path of graphviz instead of using
   # whatever graphviz is in PATH.
@@ -1053,9 +1061,13 @@ self: super: builtins.intersectAttrs super {
     hls-fourmolu-plugin
     hls-module-name-plugin
     hls-pragmas-plugin
-    hls-splice-plugin;
+    hls-splice-plugin
+    hls-refactor-plugin
+    hls-code-range-plugin
+    hls-explicit-fixity-plugin;
   # Tests have file permissions expections that don‘t work with the nix store.
   hls-stylish-haskell-plugin = dontCheck super.hls-stylish-haskell-plugin;
+  hls-gadt-plugin = dontCheck super.hls-gadt-plugin;
 
   # Flaky tests
   hls-hlint-plugin = dontCheck super.hls-hlint-plugin;
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 577b5c208f2..306c0c77afc 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -48621,6 +48621,40 @@ self: {
        broken = true;
      }) {};
 
+  "brittany_0_13_1_2" = callPackage
+    ({ mkDerivation, aeson, base, butcher, bytestring, cmdargs
+     , containers, czipwith, data-tree-print, deepseq, directory, extra
+     , filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths, hspec
+     , monad-memo, mtl, multistate, parsec, pretty, random, safe
+     , semigroups, strict, syb, text, transformers, uniplate, unsafe
+     , yaml
+     }:
+     mkDerivation {
+       pname = "brittany";
+       version = "0.13.1.2";
+       sha256 = "1pa8qgsild3zl56sdmbsllka64k05jk2p16ij3bdla4rbfw96z5g";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base butcher bytestring cmdargs containers czipwith
+         data-tree-print deepseq directory extra filepath ghc ghc-boot-th
+         ghc-exactprint ghc-paths monad-memo mtl multistate pretty random
+         safe semigroups strict syb text transformers uniplate unsafe yaml
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         aeson base butcher bytestring cmdargs containers czipwith
+         data-tree-print deepseq directory extra filepath ghc ghc-boot-th
+         ghc-exactprint ghc-paths hspec monad-memo mtl multistate parsec
+         pretty safe semigroups strict syb text transformers uniplate unsafe
+         yaml
+       ];
+       description = "Haskell source code formatter";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "brittany";
+     }) {};
+
   "brittany" = callPackage
     ({ mkDerivation, aeson, base, butcher, bytestring, cmdargs
      , containers, czipwith, data-tree-print, deepseq, directory, extra
@@ -102128,57 +102162,57 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "fourmolu" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal
-     , containers, Diff, directory, dlist, exceptions, filepath
-     , ghc-lib-parser, gitrev, hspec, hspec-discover, HsYAML
-     , HsYAML-aeson, mtl, optparse-applicative, path, path-io, syb
-     , temporary, text
+  "fourmolu_0_3_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , dlist, exceptions, filepath, ghc-lib-parser, gitrev, hspec
+     , hspec-discover, HsYAML, HsYAML-aeson, mtl, optparse-applicative
+     , path, path-io, syb, text
      }:
      mkDerivation {
        pname = "fourmolu";
-       version = "0.4.0.0";
-       sha256 = "1mq0h6nsl7ssfwh6zqhyja7w212vn8msmlm5iwwimca279hzwywb";
-       revision = "1";
-       editedCabalFile = "03bwhqj547brmgk191gy3k9xayi6fqqk2f5sbz3ail1bk7b73xnq";
+       version = "0.3.0.0";
+       sha256 = "0v89dvcr8l0swj23kkakc39q6lyxjz90rqgwy7m6a5p6iv3h2wms";
+       revision = "2";
+       editedCabalFile = "16ky7wzmnwhzkk18r63ynq78vlrg065z6mp3hqgs92khpjr33g1l";
        isLibrary = true;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal base bytestring Cabal containers Diff directory
-         dlist exceptions filepath ghc-lib-parser HsYAML HsYAML-aeson mtl
-         syb text
+         aeson base bytestring containers directory dlist exceptions
+         filepath ghc-lib-parser HsYAML HsYAML-aeson mtl syb text
        ];
        executableHaskellDepends = [
-         base directory filepath ghc-lib-parser gitrev optparse-applicative
-         text
+         base directory ghc-lib-parser gitrev optparse-applicative text
        ];
        testHaskellDepends = [
-         base containers directory filepath hspec path path-io temporary
-         text
+         base containers filepath hspec path path-io text
        ];
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "fourmolu";
      }) {};
 
-  "fourmolu_0_6_0_0" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, array, base, bytestring
-     , Cabal, containers, Diff, directory, dlist, exceptions, filepath
+  "fourmolu" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal
+     , containers, Diff, directory, dlist, exceptions, filepath
      , ghc-lib-parser, gitrev, hspec, hspec-discover, HsYAML
      , HsYAML-aeson, mtl, optparse-applicative, path, path-io, syb
      , temporary, text
      }:
      mkDerivation {
        pname = "fourmolu";
-       version = "0.6.0.0";
-       sha256 = "0yxv3ih2jjnjzdhz31y4a94ly6g3qhddrm3lvflqrb4krk445p67";
+       version = "0.4.0.0";
+       sha256 = "1mq0h6nsl7ssfwh6zqhyja7w212vn8msmlm5iwwimca279hzwywb";
+       revision = "1";
+       editedCabalFile = "03bwhqj547brmgk191gy3k9xayi6fqqk2f5sbz3ail1bk7b73xnq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal array base bytestring Cabal containers Diff
-         directory dlist exceptions filepath ghc-lib-parser HsYAML
-         HsYAML-aeson mtl syb text
+         aeson ansi-terminal base bytestring Cabal containers Diff directory
+         dlist exceptions filepath ghc-lib-parser HsYAML HsYAML-aeson mtl
+         syb text
        ];
        executableHaskellDepends = [
          base directory filepath ghc-lib-parser gitrev optparse-applicative
@@ -102191,7 +102225,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "fourmolu";
      }) {};
 
@@ -137927,41 +137960,6 @@ self: {
 
   "hie-bios" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
-     , conduit, conduit-extra, containers, cryptohash-sha1, deepseq
-     , directory, exceptions, extra, file-embed, filepath, ghc, hslogger
-     , optparse-applicative, process, tagged, tasty
-     , tasty-expected-failure, tasty-hunit, temporary, text, time
-     , transformers, unix-compat, unordered-containers, vector, yaml
-     }:
-     mkDerivation {
-       pname = "hie-bios";
-       version = "0.9.1";
-       sha256 = "0pcbgrn0hl19rk72z7mcd44j72lsmnl88nlk95rlb47l0ymr3ij1";
-       revision = "1";
-       editedCabalFile = "1hvhln1mnvghs05959fi5i71gaw04zhdk4wg558h2p4ybjcjsvb5";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring conduit conduit-extra
-         containers cryptohash-sha1 deepseq directory exceptions extra
-         file-embed filepath ghc hslogger process temporary text time
-         transformers unix-compat unordered-containers vector yaml
-       ];
-       executableHaskellDepends = [
-         base directory filepath ghc optparse-applicative
-       ];
-       testHaskellDepends = [
-         aeson base directory extra filepath ghc tagged tasty
-         tasty-expected-failure tasty-hunit temporary text
-         unordered-containers yaml
-       ];
-       description = "Set up a GHC API session";
-       license = lib.licenses.bsd3;
-       mainProgram = "hie-bios";
-     }) {};
-
-  "hie-bios_0_11_0" = callPackage
-    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , co-log-core, conduit, conduit-extra, containers, cryptohash-sha1
      , deepseq, directory, exceptions, extra, file-embed, filepath, ghc
      , optparse-applicative, prettyprinter, process, tagged, tasty
@@ -137992,7 +137990,6 @@ self: {
        ];
        description = "Set up a GHC API session";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hie-bios";
      }) {};
 
@@ -140614,6 +140611,34 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) libsass;};
 
+  "hlint_3_2_8" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
+     , containers, cpphs, data-default, directory, extra, file-embed
+     , filepath, filepattern, ghc-lib-parser, ghc-lib-parser-ex
+     , hscolour, process, refact, text, transformers, uniplate
+     , unordered-containers, utf8-string, vector, yaml
+     }:
+     mkDerivation {
+       pname = "hlint";
+       version = "3.2.8";
+       sha256 = "14nvq71kn1lhqx02r69f949p33rhxi466fwmxj9g0wd5191jawrs";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base bytestring cmdargs containers cpphs
+         data-default directory extra file-embed filepath filepattern
+         ghc-lib-parser ghc-lib-parser-ex hscolour process refact text
+         transformers uniplate unordered-containers utf8-string vector yaml
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Source code suggestions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hlint";
+       maintainers = [ lib.maintainers.maralorn ];
+     }) {};
+
   "hlint" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
      , containers, cpphs, data-default, directory, extra, file-embed
@@ -182269,7 +182294,7 @@ self: {
        broken = true;
      }) {};
 
-  "lsp" = callPackage
+  "lsp_1_4_0_0" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bytestring
      , containers, data-default, exceptions, filepath, hashable
      , hslogger, hspec, hspec-discover, lens, lsp-types, mtl
@@ -182299,9 +182324,10 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "lsp_1_6_0_0" = callPackage
+  "lsp" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bytestring
      , co-log-core, containers, data-default, directory, exceptions
      , filepath, hashable, hspec, hspec-discover, lens, lsp-types, mtl
@@ -182328,40 +182354,10 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lsp-test" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
-     , bytestring, conduit, conduit-parse, containers, data-default
-     , Diff, directory, extra, filepath, Glob, hspec, lens, lsp
-     , lsp-types, mtl, parser-combinators, process, some, text, time
-     , transformers, unix, unliftio, unordered-containers
-     }:
-     mkDerivation {
-       pname = "lsp-test";
-       version = "0.14.0.2";
-       sha256 = "1capjilca74cqiwmrhbl1an6ih3227n3g417dfvql0lffa3j6qsf";
-       revision = "1";
-       editedCabalFile = "0szqlr1brhr1z2m2fwqj98ghh73d2sim4r5mbqzm072f6iycl6ky";
-       libraryHaskellDepends = [
-         aeson aeson-pretty ansi-terminal async base bytestring conduit
-         conduit-parse containers data-default Diff directory filepath Glob
-         lens lsp-types mtl parser-combinators process some text time
-         transformers unix unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base data-default directory filepath hspec lens lsp mtl
-         parser-combinators process text unliftio unordered-containers
-       ];
-       testToolDepends = [ lsp ];
-       benchmarkHaskellDepends = [ base extra lsp process ];
-       description = "Functional test framework for LSP servers";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "lsp-test_0_14_1_0" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, co-log-core, conduit, conduit-parse, containers
      , data-default, Diff, directory, exceptions, extra, filepath, Glob
      , hspec, lens, lsp, lsp-types, mtl, parser-combinators, process
@@ -182387,10 +182383,9 @@ self: {
        benchmarkHaskellDepends = [ base extra lsp process ];
        description = "Functional test framework for LSP servers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "lsp-types" = callPackage
+  "lsp-types_1_4_0_1" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, containers
      , data-default, deepseq, Diff, directory, dlist, filepath, hashable
      , hslogger, lens, mod, mtl, network-uri, rope-utf16-splay
@@ -182411,9 +182406,10 @@ self: {
        ];
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "lsp-types_1_6_0_0" = callPackage
+  "lsp-types" = callPackage
     ({ mkDerivation, aeson, base, binary, containers, data-default
      , deepseq, Diff, dlist, exceptions, filepath, hashable, hspec
      , hspec-discover, lens, mod, mtl, network-uri, QuickCheck
@@ -182436,7 +182432,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lss" = callPackage
@@ -209937,6 +209932,38 @@ self: {
        broken = true;
      }) {};
 
+  "ormolu_0_1_4_1" = callPackage
+    ({ mkDerivation, ansi-terminal, base, bytestring, containers, Diff
+     , dlist, exceptions, filepath, ghc-lib-parser, gitrev, hspec
+     , hspec-discover, mtl, optparse-applicative, path, path-io, syb
+     , text
+     }:
+     mkDerivation {
+       pname = "ormolu";
+       version = "0.1.4.1";
+       sha256 = "1aamgzimjn9h7kwby9ajfgbj5dx08nmxyalwvpg9rs4xd8pbpd9s";
+       revision = "1";
+       editedCabalFile = "1fi8fxyhw9jdwhsbmrikjqd461wrz7h4kdszrahlvdjfdsn4wh7d";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         ansi-terminal base bytestring containers Diff dlist exceptions
+         ghc-lib-parser mtl syb text
+       ];
+       executableHaskellDepends = [
+         base filepath ghc-lib-parser gitrev optparse-applicative text
+       ];
+       testHaskellDepends = [
+         base containers filepath hspec path path-io text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A formatter for Haskell source code";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "ormolu";
+     }) {};
+
   "ormolu_0_2_0_0" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, containers, Diff
      , dlist, exceptions, filepath, ghc-lib-parser, gitrev, hspec
@@ -272785,6 +272812,38 @@ self: {
        broken = true;
      }) {};
 
+  "stylish-haskell_0_13_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, Cabal, containers
+     , directory, file-embed, filepath, ghc-lib-parser, HsYAML
+     , HsYAML-aeson, HUnit, mtl, optparse-applicative, random, strict
+     , syb, test-framework, test-framework-hunit, text
+     }:
+     mkDerivation {
+       pname = "stylish-haskell";
+       version = "0.13.0.0";
+       sha256 = "0x9w3zh1lzp6l5xj3mynnlr0fzb5mbv0wwpfxp8fr6bk0jcrzjwf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring Cabal containers directory file-embed
+         filepath ghc-lib-parser HsYAML HsYAML-aeson mtl syb text
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring Cabal containers directory file-embed
+         filepath ghc-lib-parser HsYAML HsYAML-aeson mtl
+         optparse-applicative strict syb
+       ];
+       testHaskellDepends = [
+         aeson base bytestring Cabal containers directory file-embed
+         filepath ghc-lib-parser HsYAML HsYAML-aeson HUnit mtl random syb
+         test-framework test-framework-hunit text
+       ];
+       description = "Haskell code prettifier";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "stylish-haskell";
+     }) {};
+
   "stylish-haskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, Cabal, containers
      , directory, file-embed, filepath, ghc-lib-parser