Haskell · Werkzeuge · Editor
Haskell Language Server (HLS) im Jahr 2026: Installation und häufige Korrekturen
Haskell ohne IDE-Backend zu schreiben heißt, nach jeder Kompilierung die Augen über Typfehler zusammenzukneifen. Der Haskell Language Server (HLS) behebt das: Er implementiert das Language Server Protocol (LSP) und liefert Ihnen Inline-Typen, Autovervollständigung, Gehe-zu-Definition, Hover-Dokumentation und Refactorings in VS Code, Neovim und anderen Editoren. Dieser Leitfaden behandelt, was HLS ist, wie man ihn 2026 sauber installiert, in den Editor einbindet und die Handvoll Fehler, über die Leute stolpern.
Was HLS tatsächlich leistet
HLS ist ein einzelner Server, mit dem Editoren über LSP sprechen. Er bietet:
- Typinformationen beim Hover und inline.
- Autovervollständigung und Import-Vorschläge.
- Gehe-zu-Definition, Referenzsuche und Dokumentsymbole.
- Code-Aktionen: fehlenden Import hinzufügen, eine Typsignatur ausfüllen, einen Hinweis anwenden.
- Linting über die integrierten hlint-Vorschläge.
Weil er LSP spricht, versorgt derselbe Server jeden Editor — Sie installieren HLS einmal und wählen ein Client-Plugin.
HLS mit GHCup installieren
Der saubere Weg führt über denselben Toolchain-Verwalter, den Sie für den Compiler nutzen. Wenn Sie die Toolchain noch nicht eingerichtet haben, beginnen Sie mit unserem Leitfaden zur GHCup-Installation und fügen Sie dann HLS hinzu:
ghcup install hls recommended
ghcup set hls recommended Die wichtigste Regel: HLS muss Ihre aktive GHC-Version unterstützen. Installieren Sie den HLS-Build, der zu dem GHC passt, mit dem Sie kompilieren — die interaktive Oberfläche ghcup tui zeigt, welche HLS-Versionen welche GHCs abdecken.
In den Editor einbinden
- VS Code: installieren Sie die offizielle Haskell-Erweiterung; sie kann HLS für Sie verwalten oder den von GHCup installierten verwenden. Richten Sie sie auf das HLS von GHCup aus, um Versionskonflikte zu vermeiden.
- Neovim: konfigurieren Sie
haskell-tools.nvimoder den integrierten LSP-Client mithaskell-language-server-wrapperin Ihrem PATH. - Andere Editoren: jeder LSP-fähige Editor (Emacs mit lsp-mode, Helix, Zed) funktioniert — richten Sie ihn auf die Binärdatei
haskell-language-server-wrapperaus.
Die -wrapper-Binärdatei wählt automatisch das richtige HLS für das GHC jedes Projekts, weshalb das Ausrichten Ihres Editors darauf (statt auf eine feste Version) die meisten Inkompatibilitäten vermeidet.
Häufige Fehler und Korrekturen
- „No HLS version for GHC X.Y“. Ihr GHC ist neuer als jedes installierte HLS. Aktualisieren Sie HLS über
ghcup tuioder stellen Sie das Projekt auf ein GHC um, das HLS unterstützt. - HLS startet ständig neu / geht der Speicher aus. Große Projekte können beim Indizieren den RAM erschöpfen; schließen Sie andere Werkzeuge und stellen Sie sicher, dass Ihre Maschine genug Speicher für die Projektgröße hat.
- „Cradle“-Fehler / falsche Komponenten. HLS liest Ihren Build über die Projektdateien; stellen Sie zuerst sicher, dass das Projekt mit
cabal buildbaut, und fügen Sie einehie.yamlnur hinzu, wenn die automatische Erkennung fehlschlägt. - Veraltete Ergebnisse nach einer Abhängigkeitsänderung. Starten Sie den Language Server aus Ihrem Editor neu; HLS cacht den Build-Plan.
Eine verlässliche Regel: Wenn HLS sich schlecht verhält, bestätigen Sie zuerst, dass das Projekt auf der Kommandozeile kompiliert — sehen Sie, wie parallele Builds funktionieren, in wie Cabal Ihre Kerne nutzt, und den Kontext des Build-Modells in Cabal 2.0.
FAQ
Ist HLS kostenlos und offiziell? Ja — es ist der quelloffene, von der Community standardisierte Language Server für Haskell, installierbar über GHCup.
Brauche ich Cabal oder Stack für HLS? HLS liest das Build-System, das Ihr Projekt nutzt; es funktioniert sowohl mit Cabal- als auch mit Stack-Projekten.
Warum muss HLS zu meinem GHC passen? HLS wird gegen eine bestimmte GHC-API kompiliert, daher unterstützt jeder HLS-Build eine Reihe von GHC-Versionen. Verwenden Sie die Wrapper-Binärdatei, um das richtige pro Projekt automatisch zu wählen.
Funktioniert HLS unter Windows? Ja, über den Windows-Installer von GHCup und dieselben Editor-Erweiterungen.