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 Language Server, 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


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,,,,,,,,,
Change log
Dependencies aeson (>=, async (>=2.0), attoparsec, base (>=4.11 && <5), bytestring, co-log-core (>=, containers, data-default, directory, exceptions, filepath, hashable, lens (>=4.15.2), lens-aeson, lsp, lsp-types (>=2.0.1 && <2.1), mtl (<2.4), prettyprinter, random, row-types, sorted-list (>=0.2.1 && <0.3), stm (>=2.5 && <2.6), temporary, text, text-rope, transformers (>=0.5.6 && <0.7), unliftio-core (>=, unordered-containers, uuid (>=1.3) [details]
License MIT
Copyright Alan Zimmerman, 2016-2021
Author Alan Zimmerman
Category Development
Home page
Source repo head: git clone
Uploaded by michaelpj at 2023-08-24T13:35:00Z
Distributions Arch:, LTSHaskell:, NixOS:, Stackage:
Reverse Dependencies 36 direct, 12 indirect [details]
Executables lsp-demo-simple-server, lsp-demo-reactor-server
Downloads 9937 total (318 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-08-24 [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