coldwa.st
Tous les guidesProgrammationWebDonnéesOutilsBases de donnéesHaskellConceptsCabal & buildsChaîne d’outilsCompilateurPerformanceÉditeur & HLS

Haskell · outillage · éditeur

Haskell Language Server (HLS) en 2026 : installation et corrections courantes

Par ColdwastMis à jour le 14 juin 20267 min de lecture#haskell#hls#editor
Du code source ouvert dans un éditeur de code
HLS apporte les fonctionnalités d’IDE — types, complétion, refactors — à tout éditeur qui parle LSP.

Écrire du Haskell sans backend d’IDE, c’est plisser les yeux sur des erreurs de type après chaque compilation. Le Haskell Language Server (HLS) corrige cela : il implémente le Language Server Protocol (LSP), vous donnant types inline, autocomplétion, aller-à-la-définition, docs au survol et refactors dans VS Code, Neovim et d’autres éditeurs. Ce guide couvre ce qu’est HLS, comment l’installer proprement en 2026, le brancher dans votre éditeur, et la poignée d’erreurs qui font trébucher les gens.

Ce que fait réellement HLS

HLS est un serveur unique auquel les éditeurs parlent via LSP. Il fournit :

  • Informations de type au survol et en inline.
  • Autocomplétion et suggestions d’imports.
  • Aller-à-la-définition, recherche de références et symboles de document.
  • Actions de code : ajouter un import manquant, remplir une signature de type, appliquer un conseil.
  • Linting via les suggestions hlint intégrées.

Parce qu’il parle LSP, le même serveur alimente chaque éditeur — vous installez HLS une fois et choisissez un plugin client.

Installer HLS avec GHCup

Le chemin propre est le même gestionnaire de chaîne d’outils que vous utilisez pour le compilateur. Si vous n’avez pas encore mis en place la chaîne d’outils, commencez par notre guide d’installation de GHCup, puis ajoutez HLS :

ghcup install hls recommended
ghcup set hls recommended

La règle la plus importante : HLS doit prendre en charge votre version GHC active. Installez la build HLS correspondant au GHC avec lequel vous compilez — l’interface interactive ghcup tui montre quelles versions de HLS couvrent quels GHC.

Le brancher dans votre éditeur

Lignes de code source sur un écran sombre
Lignes de code source sur un écran sombre — HLS fait remonter types et erreurs à mesure que vous tapez.
  • VS Code : installez l’extension officielle Haskell ; elle peut gérer HLS pour vous ou utiliser celui installé par GHCup. Pointez-la vers le HLS de GHCup pour éviter les décalages de version.
  • Neovim : configurez haskell-tools.nvim ou le client LSP intégré avec haskell-language-server-wrapper dans votre PATH.
  • Autres éditeurs : tout éditeur compatible LSP (Emacs avec lsp-mode, Helix, Zed) fonctionne — pointez-le vers le binaire haskell-language-server-wrapper.

Le binaire -wrapper sélectionne automatiquement le bon HLS pour le GHC de chaque projet, c’est pourquoi pointer votre éditeur vers lui (plutôt que vers une version fixe) évite la plupart des incompatibilités.

Erreurs courantes et corrections

  • « No HLS version for GHC X.Y ». Votre GHC est plus récent que tout HLS installé. Mettez à jour HLS via ghcup tui, ou faites passer le projet à un GHC que HLS prend en charge.
  • HLS redémarre sans cesse / manque de mémoire. Les gros projets peuvent épuiser la RAM pendant l’indexation ; fermez les autres outils, et assurez-vous que votre machine a assez de mémoire pour la taille du projet.
  • Erreurs de « cradle » / mauvais composants. HLS lit votre build via les fichiers de projet ; assurez-vous d’abord que le projet se construit avec cabal build, et qu’un hie.yaml n’est ajouté que lorsque la détection automatique échoue.
  • Résultats périmés après un changement de dépendance. Redémarrez le serveur de langage depuis votre éditeur ; HLS met en cache le plan de build.

Une règle fiable : si HLS se comporte mal, confirmez d’abord que le projet compile en ligne de commande — voyez comment fonctionnent les builds parallèles dans comment Cabal exploite vos cœurs, et le contexte du modèle de build dans Cabal 2.0.

FAQ

HLS est-il gratuit et officiel ? Oui — c’est le serveur de langage open source et standard de la communauté pour Haskell, installable via GHCup.

Ai-je besoin de Cabal ou Stack pour HLS ? HLS lit le système de build qu’utilise votre projet ; il fonctionne avec les projets Cabal comme Stack.

Pourquoi HLS doit-il correspondre à mon GHC ? HLS est compilé contre une API GHC spécifique, donc chaque build HLS prend en charge un ensemble de versions GHC. Utilisez le binaire wrapper pour sélectionner automatiquement le bon par projet.

HLS fonctionne-t-il sous Windows ? Oui, via l’installeur Windows de GHCup et les mêmes extensions d’éditeur.

Guide indépendant, maintenu par la communauté. coldwa.st est un site de ressources de programmation ; cet article est un écrit neuf et original sur le Haskell Language Server et la chaîne d’outils actuelle, sans affiliation avec les mainteneurs du projet ni rédigé par eux. Les commandes reflètent le comportement documenté de HLS/GHCup — consultez la documentation officielle pour la couverture de versions la plus récente.