lsp: Haskell library for the Microsoft Language Server Protocol

[ development, library, mit ] [ Propose Tags ]

An implementation of the types, and basic message server to allow language implementors to support the Language Server Protocol for their specific language.

An example of this is for Haskell via the Haskell IDE Engine, at

[Skip to Readme]


[Index] [Quick Jump]


Automatic Flags

Build the demo executables


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Versions [RSS],,,,,,,
Change log
Dependencies aeson (>=, async, attoparsec, base (>=4.11 && <4.15), bytestring, containers, data-default, dependent-map, directory, filepath, hashable, hslogger, lens (>=4.15.2), lsp, lsp-types (>=1.2 && <1.3), mtl (<2.3), network-uri, random, scientific, sorted-list (>=0.2.1 && <0.2.2), stm (>=2.5 && <2.6), text, time, transformers (>=0.5.6 && <0.6), unliftio, unliftio-core (>=, unordered-containers, uuid (>=1.3) [details]
License MIT
Copyright Alan Zimmerman, 2016-2021
Author Alan Zimmerman
Revised Revision 1 made by sjakobi at 2022-05-10T13:35:36Z
Category Development
Home page
Source repo head: git clone
Uploaded by wz1000 at 2021-03-28T09:49:08Z
Distributions Arch:, LTSHaskell:, NixOS:
Executables lsp-demo-simple-server, lsp-demo-reactor-server
Downloads 6342 total (242 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-03-28 [all 1 reports]

Readme for lsp-

[back to package description]


lsp is a library for building language servers, handling:

  • JSON-RPC transport
  • Keeping track of the document state in memory with the Virtual File System (VFS)
  • Responding to notifications and requests via handlers
  • Setting the server capabilities in the initialize request based on registered handlers
  • Dynamic registration of capabilities
  • Cancellable requests and progress notifications
  • Publishing and flushing of diagnostics

It is part of the lsp family of packages, along with lsp-test and lsp-types

For more information, check