Expand description
lspkit-server — hand-rolled JSON-RPC LSP server scaffolding.
Provides the primitives every Rust LSP server reimplements:
- Content-Length framed JSON-RPC 2.0 reader/writer (
jsonrpc). - Method
dispatch::Dispatcherwith cancellation-token plumbing. capabilities::Capabilitiesbuilder that does not leak protocol types.urihelpers forfile://↔PathBuf.diagnostics::DiagnosticsBusfor fan-out to LSP and MCP sinks.progress::ProgressSinkwrappingwindow/workDoneProgress.- Multi-root
workspace::Workspacetracking.
All routing happens against an lspkit::EngineApi + lspkit_vfs::Vfs
pair the consumer supplies.
Re-exports§
pub use crate::capabilities::Capabilities;pub use crate::capabilities::Feature;pub use crate::capabilities::TextSync;pub use crate::diagnostics::Diagnostic;pub use crate::diagnostics::DiagnosticsBatch;pub use crate::diagnostics::DiagnosticsBus;pub use crate::diagnostics::DiagnosticsSink;pub use crate::diagnostics::Severity;pub use crate::dispatch::DispatchError;pub use crate::dispatch::Dispatcher;pub use crate::dispatch::HandlerResult;pub use crate::jsonrpc::FramingError;pub use crate::jsonrpc::JsonRpcError;pub use crate::jsonrpc::Message;pub use crate::jsonrpc::MessageWriter;pub use crate::jsonrpc::RequestId;pub use crate::progress::NoopReporter;pub use crate::progress::ProgressReporter;pub use crate::progress::ProgressSink;pub use crate::progress::ProgressUpdate;pub use crate::uri::path_to_uri;pub use crate::uri::uri_to_path;pub use crate::uri::UriError;pub use crate::workspace::Workspace;pub use crate::workspace::WorkspaceFolder;
Modules§
- capabilities
- Server-capability builder.
- diagnostics
- Diagnostics fan-out bus.
- dispatch
- JSON-RPC method dispatcher.
- jsonrpc
- Content-Length-framed JSON-RPC 2.0 over async I/O.
- progress
- Work-done progress sink.
- uri
- URI ↔
PathBufconversion. - workspace
- Multi-root workspace abstraction.