An open API service indexing awesome lists of open source software.

https://github.com/jkachmar/easy-hls-nix

Easy Haskell Language Server tooling with Nix!
https://github.com/jkachmar/easy-hls-nix

haskell haskell-language-server lsp nix tooling

Last synced: 3 months ago
JSON representation

Easy Haskell Language Server tooling with Nix!

Awesome Lists containing this project

README

        

# Easy Haskell Language Server Nix

Easy Haskell Language Server tooling with Nix!

## Example Usage

### Quickstart

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.

```nix
{ pkgs ? import { } }:
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 ];
}
```

### Explicitly Selecting GHC Versions

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**.

### Flakes (Advanced)

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.