In breve: OpenCode LSP collega l’agente di programmazione a server di linguaggio che comprendono il progetto. La sessione può usare diagnostica, definizioni, riferimenti e simboli. LSP non è MCP e non sostituisce formatter o test. Parti dallo schema ufficiale, collega le estensioni al server corretto e prova con un’attività a basso rischio.
La ricerca cos'è LSP in OpenCode spesso contiene altre esigenze: cosa cambia nel flusso dell’agente, perché mancano i diagnostici, dove si trova la configurazione e come correggere un server disattivato. Questa guida unisce le decisioni e lascia installazione, provider e MCP alle pagine dedicate.
La pagina ufficiale OpenCode LSP verificata il 10 agosto 2026 si chiama LSP Servers e descrive l’integrazione con server LSP. Documenta l’oggetto lsp, comando ed estensioni, inizializzazione, disattivazione globale, disattivazione per server e server personalizzati. I comandi reali vanno verificati nella documentazione del server.

Cos’è LSP in OpenCode? Una struttura per il contesto del linguaggio
LSP significa Language Server Protocol. Un server di linguaggio gira accanto al progetto e fornisce diagnostica, simboli, definizioni, riferimenti e informazioni hover. OpenCode può usare questi dati nella sessione invece di trattare ogni file come testo isolato.
Il vantaggio pratico è il contesto. Se il server TypeScript comprende un import, l’agente dispone di più prove per spiegare un errore di tipo o un rename. LSP però non garantisce una risposta corretta: il server può mancare, il progetto può non caricarsi o il pacchetto può richiedere configurazione propria. Non sostituisce test e revisione del diff.
Il modello mentale
Considera OpenCode il consumatore, il server LSP lo specialista del linguaggio e il repository la fonte di verità. Controlla il livello che fallisce prima di cambiare modello o ampliare i permessi.
| Livello | Fornisce | Non sostituisce |
|---|---|---|
| LSP | Diagnostica, simboli, definizioni e riferimenti | Test, formatter o revisione |
| MCP | Tool e dati esterni | Il server di linguaggio |
| Formatter | Stile e formattazione | Diagnostica semantica |
| Provider/modello | Ragionamento e generazione | La toolchain del progetto |
Come OpenCode trova il server LSP corretto
Una voce LSP richiede un comando eseguibile e un rapporto chiaro con le estensioni. Il comando avvia il server e l’elenco delle estensioni indica quali file usare. Eseguibile, argomenti e installazione dipendono dalla documentazione del server: non indovinare il pacchetto.
Inizia con una lingua in un piccolo repository. Apri un file con l’estensione prevista, verifica l’avvio del processo e fai una richiesta di sola lettura. Se l’estensione non coincide, un server valido può sembrare rotto perché OpenCode non lo collega al file.

| Controllo | Prova | Prima verifica |
|---|---|---|
| Comando | L’eseguibile parte con gli argomenti | PATH, runtime, pacchetto e stderr |
| Estensione | Il file corrisponde alla voce | Estensioni documentate |
| Workspace | Si apre il progetto giusto | Root Git e configurazione |
| Risultato | Arrivano diagnostica o simboli | Log e configurazione |
Aggiungi una configurazione lsp minima
Metti le decisioni condivise in una configurazione di progetto revisionata. Tieni gli esperimenti personali nella configurazione globale finché comando, estensioni e root sono chiari. La guida JSONC tratta ambito e Schema; questa pagina resta sul server di linguaggio.
Una voce piccola è più semplice da diagnosticare di un catalogo ampio. Usa un nome descrittivo, un array di comandi esplicito e solo le estensioni supportate. Aggiungi l’inizializzazione dopo il processo base. JSON valido non prova che eseguibile o workspace siano corretti.
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"typescript": {
"command": ["typescript-language-server", "--stdio"],
"extensions": [".ts", ".tsx"]
}
}
}Esempio con forma compatibile con lo Schema; verifica eseguibile ed estensioni nella fonte ufficiale.
Abilita, disabilita o personalizza un server LSP
La documentazione ufficiale attuale dice che omettere lsp disabilita tutti i server. Per disabilitarli tutti dopo un’altra configurazione usa lsp: false; per un server usa disabled: true. È utile se il server è lento, rumoroso o incompatibile.
I server personalizzati coprono linguaggi o estensioni non presenti nella configurazione comune. Definisci prima comando ed estensioni, aggiungi l’inizializzazione secondo i docs e cambia una cosa per volta. Conserva l’ultima configurazione funzionante per il rollback.
{
"$schema": "https://opencode.ai/config.json",
"lsp": false
}
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"custom-lsp": {
"command": ["custom-lsp-server", "--stdio"],
"extensions": [".custom"],
"initialization": { "preferences": { "mode": "strict" } }
}
}
}Il comando personalizzato è un placeholder: sostituiscilo con il valore ufficiale e non mettere segreti in Git.
Verifica OpenCode LSP con un test a basso rischio
Non iniziare riscrivendo un modulo grande. Usa un repository pulito, apri un file noto e chiedi una lettura: simbolo, definizione o diagnostica. Confronta il risultato con editor, compilatore o server già affidabile.
Dopo il test, fai una modifica piccola e reversibile e controlla il diff. Registra sistema, comando, estensioni, root e prompt. La nota rende il test riproducibile e il prossimo problema più facile da classificare.
- PulireParti da branch e albero di lavoro conosciuti.
- AssociareApri un file con estensione configurata.
- LeggereChiedi simbolo, definizione, riferimento o diagnostica.
- ModificareFai una modifica reversibile e controlla il diff.
- RegistrareSalva comando, modello, server e rollback.
Risolvi opencode lsps are disabled e diagnostica assente
Se OpenCode dice che gli LSP sono disabilitati, controlla prima la precedenza. Un altro file può imporre lsp: false, il progetto può non dichiarare il server o una voce può avere disabled. Confronta la cartella del progetto con la configurazione effettiva.
Se il server è attivo ma non arrivano diagnostici, controlla comando ed estensione. Avvialo nella stessa shell, verifica runtime e PATH e controlla lockfile, configurazione del compilatore e root del workspace. Un primo risultato lento può essere indicizzazione.
Mantieni stretti i permessi. LSP richiede processo e contesto di progetto, non shell ampia, più tool MCP o approvazione automatica. Usa le manuali sui permessi e MCP quando il problema cambia livello.

| Sintomo | Livello probabile | Prima correzione |
|---|---|---|
| Tutti disattivati | Precedenza o lsp: false | Trova la configurazione vincente |
| Un server disattivato | Flag del server | Controlla nome e disabled |
| Nessuna diagnostica | Estensione o processo | Abbina l’estensione ed esegui il comando |
| Primo risultato lento | Indice o workspace | Prova un repo piccolo e guarda i log |
| Funziona nell’editor | Root o config diversa | Confronta root di editor, Git e OpenCode |
LSP, MCP, formatter e VS Code sono livelli diversi
LSP fornisce intelligenza di linguaggio nel repository. MCP collega tool e dati esterni. Il formatter modifica lo stile e i test danno evidenza eseguibile. VS Code può mostrare la propria diagnostica; ciò non dimostra che OpenCode usi lo stesso server o root.
Usa la guida adatta: MCP per server locali e remoti, VS Code per contesto editor e terminale, permissions per le approvazioni. Così la pagina LSP in OpenCode resta focalizzata.
configurazione opencode.jsonc:Definisci ambito e Schema.
OpenCode in VS Code:Confronta contesto e percorso terminale.
permessi OpenCode:Mantieni diritti stretti.
OpenCode MCP:Separa tool esterni e LSP.
Domande frequenti OpenCode LSP
Cos’è LSP in OpenCode?
È il livello Language Server Protocol che fornisce diagnostica, simboli, definizioni e riferimenti da un server di linguaggio.
Come abilito LSP in OpenCode?
Aggiungi lsp con comando ed estensioni compatibili e verifica comando e root con una richiesta di sola lettura.
Perché gli LSP OpenCode sono disabilitati?
La documentazione attuale dice che omettere lsp li disabilita tutti. Possono inoltre agire lsp: false o disabled: true. Controlla la precedenza.
LSP sostituisce MCP?
No. LSP offre intelligenza di linguaggio e MCP collega tool e dati esterni. I confini sono diversi.
Posso aggiungere un server LSP personalizzato?
Sì. Definisci comando ed estensioni sotto lsp, aggiungi l’inizializzazione documentata e prova in un repository piccolo.
Perché LSP funziona in VS Code ma non in OpenCode?
Root, comando, estensioni, runtime o file di configurazione possono differire. Confronta questi input.
Fonti ufficiali consultate
Riferimenti OpenCode LSP
La pagina ufficiale LSP è stata verificata il 10 agosto 2026; comandi, estensioni e campi possono cambiare.