Guida OpenCode LSP

OpenCode LSP: cosa fa, come abilitarlo e correggere i server disattivati

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.

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.

OpenCode LSP collega uno spazio di codice a server di linguaggio e diagnostica
LSP porta la diagnostica del server di linguaggio e le relazioni del codice nel flusso OpenCode.

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.

LivelloFornisceNon sostituisce
LSPDiagnostica, simboli, definizioni e riferimentiTest, formatter o revisione
MCPTool e dati esterniIl server di linguaggio
FormatterStile e formattazioneDiagnostica semantica
Provider/modelloRagionamento e generazioneLa 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.

Flusso della configurazione OpenCode LSP da opencode.json a server di linguaggio e diagnostica
Associa l’estensione, avvia il server e controlla il risultato linguistico in questo ordine.
ControlloProvaPrima verifica
ComandoL’eseguibile parte con gli argomentiPATH, runtime, pacchetto e stderr
EstensioneIl file corrisponde alla voceEstensioni documentate
WorkspaceSi apre il progetto giustoRoot Git e configurazione
RisultatoArrivano diagnostica o simboliLog 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.

Esempio opencode.json
{
  "$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.

Disabilitare e personalizzare
{
  "$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.

  1. PulireParti da branch e albero di lavoro conosciuti.
  2. AssociareApri un file con estensione configurata.
  3. LeggereChiedi simbolo, definizione, riferimento o diagnostica.
  4. ModificareFai una modifica reversibile e controlla il diff.
  5. 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.

Quattro controlli per OpenCode LSP: comando, estensione, attivo e diagnostica
Controlla comando, estensione, stato attivo e diagnostica in questo ordine.
SintomoLivello probabilePrima correzione
Tutti disattivatiPrecedenza o lsp: falseTrova la configurazione vincente
Un server disattivatoFlag del serverControlla nome e disabled
Nessuna diagnosticaEstensione o processoAbbina l’estensione ed esegui il comando
Primo risultato lentoIndice o workspaceProva un repo piccolo e guarda i log
Funziona nell’editorRoot o config diversaConfronta 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.

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.