/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
- Detecção de linguagem — pela extensão do arquivo.
- Spawn — inicia o language server da linguagem (comando default ou seu override). Se o binário não estiver instalado/no
PATH, o/lspavisa. - Handshake —
initialize+textDocument/didOpen. - Diagnósticos — espera até 12s por
textDocument/publishDiagnosticse 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 noPATH.
| Extensões | Language server (default) | Override |
|---|---|---|
.go | gopls | CHATCLI_LSP_GO_CMD |
.py | pyright-langserver --stdio | CHATCLI_LSP_PYTHON_CMD |
.ts .tsx .js .jsx | typescript-language-server --stdio | CHATCLI_LSP_TS_CMD |
.rs | rust-analyzer | CHATCLI_LSP_RUST_CMD |
.c .h | clangd | CHATCLI_LSP_C_CMD |
.cpp .cc | clangd | CHATCLI_LSP_CPP_CMD |
.java | jdtls | CHATCLI_LSP_JAVA_CMD |
.rb | solargraph stdio | CHATCLI_LSP_RUBY_CMD |