codineer-lsp
Language Server Protocol (LSP) client integration for Codineer.
This crate provides the LSP transport layer used by Codineer to communicate with language servers. It manages server lifecycle (spawn, initialize, shutdown), JSON-RPC message framing, and async diagnostics polling via tokio::sync::watch.
Supported operations
| Operation | Method |
|---|---|
| Hover | textDocument/hover |
| Completion | textDocument/completion |
| Go to definition | textDocument/definition |
| Find references | textDocument/references |
| Document symbols | textDocument/documentSymbol |
| Workspace symbols | workspace/symbol |
| Rename | textDocument/rename |
| Formatting | textDocument/formatting |
| Diagnostics | textDocument/publishDiagnostics (push) + polling |
Architecture
LspClient— per-server subprocess manager with stdin/stdout JSON-RPC framing.LspManager— multiplexer that routes requests to the correct server based on file extension, with async I/O viatokio::fs.- Server capabilities are captured during
initializeand exposed for feature detection.
Note
This is an internal crate of the Codineer project. It is published to crates.io as a dependency of codineer-cli and is not intended for standalone use. API stability is not guaranteed outside the Codineer workspace.
License
MIT — see LICENSE for details.