Easy Haskell Language Server tooling with Nix!
The quickest way to start using this project is to import the derivation
directly from this GitHub project and load up all versions of the Haskell
Language Server in a shell.nix
file.
NOTE: This README may be out of date, and the rev
and sha256
provided
below might not be the latest version!
Remember to check the latest revision and update it if necessary, substituting
the sha256
value with pkgs.lib.fakeSha256
to get the latest SHA256 hash.
{ pkgs ? import <nixpkgs> { } }:
let
inherit (pkgs) callPackage fetchFromGitHub mkShell;
easy-hls-src = fetchFromGitHub {
owner = "jkachmar";
repo = "easy-hls-nix";
rev = "6cb50f04e3a61b1ec258c6849df84dae9dfd763f";
sha256 = "1rvi6067nw64dka8kksl7f34pwkq7wx7pnhnz3y261fw9z5j4ndp";
};
easy-hls = callPackage easy-hls-src {};
in
mkShell {
buildInputs = [ easy-hls ];
}
This project includes all of the binaries associated with a particular version of the Haskell Language Server.
While this can be convenient for a global installation (e.g. with nix-env
or
nix profile
), some projects may only need to support a single version of GHC
and the maintainer may not want to carry around any unnecessary dependencies.
In that case, the supported GHC versions can be overridden by explicitly
supplying a ghcVersions
argument, as follows:
# ...see the Quickstart example above for details...
easy-hls = callPackage easy-hls-src {
ghcVersions = [ "8.8.4" ];
};
This will provide the haskell-language-server-wrapper
and
haskell-language-server-8.8.4
binaries and no others.
This project supports Nix Flakes!
Contributors familiar with Nix Flakes are welcome to use it directly (via
nix profile
or their own flake.nix
file) and invited to contribute
user-friendly documentation if they find Flakes support to be particularly
helpful.