Haskell Language Server
summary
Haskell Language Server (HLS) is an IDE backend built on the GHC API that delivers hover, go-to-definition, diagnostics and refactorings by combining hie-bios for build flags, an in-memory build graph (hls-graph), a persistent SQLite index (hiedb SQLite index) and ~20 extensible plugins. HLS requires compile HLS with same GHC as projects, uses position mappings and three “use” modes (blocking, stale-with-mapping, and nonblocking useWithStaleFast) to give useful results even when files fail to typecheck, and lazily generates bytecode for Template Haskell to save memory and improve responsiveness.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:45How Haskell is set up
- 10:15Requests and notifications
- 16:07Initializing the plugin
- 24:10Notifications and requests
- 26:20Build system
- 30:40Type check
- 39:20Position Mapping
- 42:10Sale
- 44:05Incremental granularity
- 44:25One unit
- 45:15Rule state
- 52:10Build artifacts
- 55:12GHC versions
- 56:25GHC exactprint
related talks
47mIndustrial Strength Laziness: What's Next?
22mHaskell Tools, Compilers, Libraries and Community Projects
53mFalling Skies: Haskell Tooling and Ecosystem Growth
49mHaskell On Rails
01h 26mReflections on Haskell@Meta
29mIntegrating Liquid Haskell with GHC
54mHaskell Project Showcase and Community Contributions
53mGhost in the Haskell
