coldwa.st
Tutte le guideProgrammazioneWebDatiStrumentiDatabaseHaskellConcettiCabal e buildToolchainCompilatorePrestazioniEditor e HLS

Haskell · strumenti · editor

Haskell Language Server (HLS) nel 2026: installazione e correzioni comuni

Di ColdwastAggiornato il 14 giugno 20267 min di lettura#haskell#hls#editor
Codice sorgente aperto in un editor di codice
HLS porta le funzionalità da IDE — tipi, completamento, refactoring — in qualsiasi editor che parli LSP.

Scrivere Haskell senza un backend da IDE significa strizzare gli occhi sugli errori di tipo dopo ogni compilazione. L’Haskell Language Server (HLS) risolve questo: implementa il Language Server Protocol (LSP), dandoti tipi inline, autocompletamento, vai-alla-definizione, documentazione al passaggio del mouse e refactoring in VS Code, Neovim e altri editor. Questa guida spiega cos’è HLS, come installarlo in modo pulito nel 2026, collegarlo al tuo editor e la manciata di errori che fanno inciampare le persone.

Cosa fa davvero HLS

HLS è un singolo server con cui gli editor dialogano via LSP. Fornisce:

  • Informazioni sui tipi al passaggio del mouse e inline.
  • Autocompletamento e suggerimenti di import.
  • Vai-alla-definizione, ricerca dei riferimenti e simboli del documento.
  • Azioni sul codice: aggiungere un import mancante, completare una firma di tipo, applicare un suggerimento.
  • Linting tramite i suggerimenti hlint integrati.

Poiché parla LSP, lo stesso server alimenta ogni editor — installi HLS una volta e scegli un plugin client.

Installare HLS con GHCup

La via pulita è lo stesso gestore di toolchain che usi per il compilatore. Se non hai ancora predisposto la toolchain, parti dalla nostra guida all’installazione di GHCup, poi aggiungi HLS:

ghcup install hls recommended
ghcup set hls recommended

La regola più importante: HLS deve supportare la tua versione di GHC attiva. Installa la build HLS corrispondente al GHC con cui compili — l’interfaccia interattiva ghcup tui mostra quali versioni di HLS coprono quali GHC.

Collegarlo al tuo editor

Righe di codice sorgente su uno schermo scuro
Righe di codice sorgente su uno schermo scuro — HLS fa emergere tipi ed errori mentre digiti.
  • VS Code: installa l’estensione ufficiale Haskell; può gestire HLS per te o usare quello installato da GHCup. Indirizzala verso l’HLS di GHCup per evitare disallineamenti di versione.
  • Neovim: configura haskell-tools.nvim o il client LSP integrato con haskell-language-server-wrapper nel tuo PATH.
  • Altri editor: qualsiasi editor compatibile con LSP (Emacs con lsp-mode, Helix, Zed) funziona — indirizzalo verso il binario haskell-language-server-wrapper.

Il binario -wrapper seleziona automaticamente l’HLS giusto per il GHC di ogni progetto, ecco perché indirizzare il tuo editor verso di esso (anziché verso una versione fissa) evita la maggior parte delle incompatibilità.

Errori comuni e correzioni

  • «No HLS version for GHC X.Y». Il tuo GHC è più recente di qualsiasi HLS installato. Aggiorna HLS tramite ghcup tui, oppure porta il progetto a un GHC che HLS supporta.
  • HLS si riavvia di continuo / esaurisce la memoria. I progetti grandi possono esaurire la RAM durante l’indicizzazione; chiudi gli altri strumenti e assicurati che la macchina abbia memoria sufficiente per la dimensione del progetto.
  • Errori di «cradle» / componenti errati. HLS legge il tuo build tramite i file di progetto; assicurati prima che il progetto si compili con cabal build, e aggiungi un hie.yaml solo quando il rilevamento automatico fallisce.
  • Risultati obsoleti dopo un cambio di dipendenza. Riavvia il language server dal tuo editor; HLS mette in cache il piano di build.

Una regola affidabile: se HLS si comporta male, conferma prima che il progetto compili da riga di comando — vedi come funzionano i build paralleli in come Cabal sfrutta i tuoi core, e il contesto del modello di build in Cabal 2.0.

FAQ

HLS è gratuito e ufficiale? Sì — è il language server open source e standard della community per Haskell, installabile tramite GHCup.

Mi servono Cabal o Stack per HLS? HLS legge il sistema di build usato dal tuo progetto; funziona sia con i progetti Cabal sia con quelli Stack.

Perché HLS deve corrispondere al mio GHC? HLS è compilato contro una specifica API di GHC, quindi ogni build HLS supporta un insieme di versioni di GHC. Usa il binario wrapper per selezionare automaticamente quello giusto per ogni progetto.

HLS funziona su Windows? Sì, tramite l’installer Windows di GHCup e le stesse estensioni per editor.

Guida indipendente, mantenuta dalla community. coldwa.st è un sito di risorse sulla programmazione; questo articolo è uno scritto nuovo e originale sull’Haskell Language Server e sull’attuale toolchain, senza alcuna affiliazione con i maintainer del progetto né scritto da loro. I comandi riflettono il comportamento documentato di HLS/GHCup — consulta la documentazione ufficiale per la copertura delle versioni più recente.