Pular para o conteúdo principal
O comando /lsp <arquivo> pega os diagnósticos reais de um arquivo de código — os mesmos erros e avisos que seu editor mostraria — iniciando o language server apropriado e falando o Language Server Protocol com ele.
É um comando manual e por arquivo: você passa um arquivo, o ChatCLI inicia o language server da linguagem dele, abre o documento, aguarda os diagnósticos e os imprime. Não há injeção automática no /agent//coder.

Como funciona

/lsp ./cli/agent_mode.go


detecta a linguagem pela extensão (.go → gopls)


inicia o language server (stdio, JSON-RPC com framing Content-Length)


initialize → didOpen(arquivo) → aguarda publishDiagnostics (até 12s)


imprime erros/avisos (ou "Nenhum problema encontrado")
  1. Detecção de linguagem — pela extensão do arquivo.
  2. Spawn — inicia o language server da linguagem (comando default ou seu override). Se o binário não estiver instalado/no PATH, o /lsp avisa.
  3. Handshakeinitialize + textDocument/didOpen.
  4. Diagnósticos — espera até 12s por textDocument/publishDiagnostics e renderiza o resultado.

Linguagens e comandos default

Cada linguagem usa um comando convencional de stdio, sobrescrevível por variável de ambiente. O binário precisa estar instalado e no PATH.
ExtensõesLanguage server (default)Override
.gogoplsCHATCLI_LSP_GO_CMD
.pypyright-langserver --stdioCHATCLI_LSP_PYTHON_CMD
.ts .tsx .js .jsxtypescript-language-server --stdioCHATCLI_LSP_TS_CMD
.rsrust-analyzerCHATCLI_LSP_RUST_CMD
.c .hclangdCHATCLI_LSP_C_CMD
.cpp .ccclangdCHATCLI_LSP_CPP_CMD
.javajdtlsCHATCLI_LSP_JAVA_CMD
.rbsolargraph stdioCHATCLI_LSP_RUBY_CMD
# Exemplo: ligar trace do gopls ou apontar para outro binário
export CHATCLI_LSP_GO_CMD="gopls -rpc.trace"
export CHATCLI_LSP_PYTHON_CMD="pyright-langserver --stdio"

Uso

> /lsp ./cli/agent_mode.go
  Iniciando language server: gopls...

  Diagnostics for agent_mode.go
  ─────────────────────────────────────────
  Nenhum problema encontrado.
> /lsp ./broken.go
  Iniciando language server: gopls...

  Diagnostics for broken.go
  ─────────────────────────────────────────
  error  12:6   undefined: fmt.Printline
  warn   30:2   declared and not used: x
Combine com o /coder: rode /lsp num arquivo que você acabou de editar para confirmar que não introduziu erros de compilação antes de seguir.

Veja também