# haskell/haskell-language-server

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/haskell-haskell-language-server).**

2,936 stars · 441 forks · Haskell · Apache-2.0

## Links

- GitHub: https://github.com/haskell/haskell-language-server
- awesome-repositories: https://awesome-repositories.com/repository/haskell-haskell-language-server.md

## Topics

`cabal` `ghc` `hacktoberfest` `haskell` `haskell-language-server` `ide` `lsp-server` `stack`

## Description

The Haskell Language Server is an implementation of the Language Server Protocol that provides real-time diagnostics, code navigation, and refactoring support for Haskell projects. It functions as a backend service that enables advanced editing capabilities within standard text editors by facilitating communication between the development environment and the Haskell compiler.

The project distinguishes itself through a modular, plugin-based architecture that allows for the integration of independent components for specific language features. It leverages the host compiler as a library to perform deep semantic inspection and type checking, while utilizing an incremental build graph and memory-mapped artifacts to maintain responsiveness during frequent code edits.

Beyond core editing support, the tool includes a comprehensive suite of utilities for managing build performance and software testing. It provides capabilities for profiling resource usage, analyzing build dependency chains, and executing automated benchmarks to measure latency and throughput. The system also supports the validation of cross-plugin interactions and the simulation of editor user actions to ensure stability across complex development workflows.

## Tags

### Development Tools & Productivity

- [Language Server Protocols](https://awesome-repositories.com/f/development-tools-productivity/language-server-protocols.md) — Implements the language server protocol to provide real-time code analysis and interactive development features.
- [Editor Code Navigation](https://awesome-repositories.com/f/development-tools-productivity/code-refactoring-tools/editor-code-navigation.md) — Provides real-time diagnostics, navigation tools, and refactoring suggestions within text editors. ([source](https://github.com/haskell/haskell-language-server/blob/master/README.md))
- [Haskell Implementations](https://awesome-repositories.com/f/development-tools-productivity/language-server-protocol-implementations/haskell-implementations.md) — Implements the language server protocol to provide real-time diagnostics, code navigation, and refactoring support for Haskell projects.
- [Heap Profilers](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/performance-resource-profilers/heap-profilers.md) — Captures heap profiles to identify memory consumption patterns during benchmark execution. ([source](https://github.com/haskell/haskell-language-server/tree/master/bench))
- [In-Memory Build Processing](https://awesome-repositories.com/f/development-tools-productivity/in-memory-build-processing.md) — Caches intermediate compilation results in memory to accelerate feedback loops during code edits.
- [Incremental Build Systems](https://awesome-repositories.com/f/development-tools-productivity/incremental-build-systems.md) — Tracks dependency relationships to recompute only necessary components during development.

### Programming Languages & Runtimes

- [IDE Integrations](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-compilation/ide-integrations.md) — Provides real-time code diagnostics, navigation, and refactoring support for Haskell projects within standard text editors.
- [Haskell Build Tools](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-build-tools.md) — Optimizes Haskell build performance through dependency graph management and resource profiling.
- [Haskell IDE Integrations](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-ide-integrations.md) — Enables advanced code editing features in various text editors by communicating through the language server protocol.
- [Statically Typed Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/statically-typed-compilers.md) — Leverages the compiler as a library to perform deep semantic inspection and type checking.
- [Development Tooling](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-build-tools/development-tooling.md) — Includes utilities for profiling resource usage, analyzing build dependency chains, and executing automated benchmarks to ensure tool stability.

### DevOps & Infrastructure

- [Build-Time Execution](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-time-execution.md) — Manages task dependencies that change during execution to ensure efficient recomputation. ([source](https://github.com/haskell/haskell-language-server/tree/master/hls-graph))

### Software Engineering & Architecture

- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Uses a modular architecture to load independent components for specific language features.

### System Administration & Monitoring

- [Language Server Monitors](https://awesome-repositories.com/f/system-administration-monitoring/language-server-monitors.md) — Monitors and benchmarks the performance of language server processes to ensure responsiveness. ([source](https://github.com/haskell/haskell-language-server/tree/master/ghcide-bench))
- [Performance Benchmarkers](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/performance-benchmarkers.md) — Executes automated benchmark suites to compare performance across project commits. ([source](https://github.com/haskell/haskell-language-server/tree/master/bench))
- [Build Performance Profilers](https://awesome-repositories.com/f/system-administration-monitoring/performance-profiling-tools/build-performance-profilers.md) — Generates reports on task execution times and dependency chains to optimize build performance. ([source](https://github.com/haskell/haskell-language-server/tree/master/hls-graph))

### Testing & Quality Assurance

- [User Interaction Simulation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation.md) — Automates sequences of editor actions to evaluate server responsiveness under realistic workloads. ([source](https://github.com/haskell/haskell-language-server/tree/master/ghcide-bench))
