haskell-language-server is a free, open source ides & code editors project written in Haskell and released under Apache-2.0. It has 2,959 GitHub stars, 458 forks and 567 open issues, and was last pushed 5 days ago. On this registry it ranks #31 of 36 tracked projects in IDEs & Code Editors, with 5 head-to-head comparisons available.

What is haskell-language-server?

haskell-language-server is the official Haskell language server, an LSP implementation that gives any editor with an LSP client full IDE support for Haskell projects.

What it is

haskell-language-server is a single language server process that speaks the Language Server Protocol (LSP) on behalf of the Haskell toolchain. It is the official implementation maintained under the haskell GitHub organisation, published as the haskell-language-server package on Hackage, and licensed under Apache-2.0. Rather than each editor plug-in reimplementing Haskell analysis, the server exposes one protocol interface that editors such as those in the IDE ecosystem can consume, and the project publishes its reference documentation on readthedocs.io covering features, configuration, components and contributing.

The concrete problem it solves is fragmented editor support for Haskell. Before a standardised server, each editor integration had to duplicate the work of driving the compiler and build tooling, and support lagged behind new GHC releases. By putting that work behind LSP, the project lets a single binary serve many editors, and it handles the version matrix explicitly through a documented list of supported GHC versions and by working with both the cabal and stack build tools, so a project's existing build configuration remains the source of truth.

Key capabilities

  • Implements the Language Server Protocol for Haskell, so any editor with an LSP client can connect to the same haskell-language-server process.
  • Supports a documented range of GHC versions, with a dedicated "Supported GHC Versions" page in the project documentation.
  • Works with both cabal and stack projects, covering the two dominant Haskell build tools named in the project topics.
  • Exposes per-user and per-project configuration, documented in a dedicated Configuration section of the readthedocs site.
  • Is structured as separate components, described in the documentation's Components index, so behaviour can be understood and assembled per feature.
  • Is released on both GitHub Releases and Hackage, giving two independent distribution channels for installation.
  • Is exercised by continuous integration through the GitHub Actions workflows test.yml and nix.yml, including a dedicated Nix build workflow.

Who uses it and how

  • Haskell developers who edit in an LSP-capable editor and point their client at haskell-language-server for navigation, diagnostics and refactoring inside their project.
  • Teams standardising on either cabal or stack, since the server reads the existing build setup instead of requiring a new project format.
  • Contributors working across multiple GHC versions, using the documented version-support matrix to build the server against the compiler their project targets.
  • Nix-based environments, which can lean on the project's own nix.yml workflow as a reference for building the server reproducibly.
  • Community participants who troubleshoot through the documentation's Troubleshooting page and the Matrix chat room at #haskell-language-server:matrix.org.

Getting started

Install the haskell-language-server package from Hackage or download a binary from GitHub Releases, following the Installation page in the project documentation at haskell-language-server.readthedocs.io.

How it compares

This registry lists no comparable alternatives to this project, so it stands alone here as the reference implementation of Haskell IDE support.

When to use it — and when not

A self-hoster or new user must already have a working Haskell toolchain — a supported GHC plus either cabal or stack — and an editor with an LSP client, since the server provides no interface of its own. It is not the right choice for teams that have not committed to Haskell, or for those pinned to a GHC version outside the documented support matrix; note also that the issue tracker currently carries 567 open issues, so support requests and feature gaps may take time to resolve.

project readme (upstream, from github) — read inline

Frequently asked questions

Is haskell-language-server free to use?

haskell-language-server is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does haskell-language-server do?

Official Haskell IDE support via the language server protocol (LSP)

What is haskell-language-server written in?

haskell-language-server is primarily written in Haskell. Its source is publicly available at https://github.com/haskell/haskell-language-server, and it has 2,959 GitHub stars.