LspClient.inProcess constructor
LspClient.inProcess()
Creates a client wired to a fresh in-process LspServer over a linked pair
of MessageLspEndpoints. Ideal for embedding (web IDE, AI agent) and
tests — no subprocess, no dart:io.
Implementation
factory LspClient.inProcess() {
late final MessageLspEndpoint serverEndpoint;
final clientEndpoint = MessageLspEndpoint(
(msg) => serverEndpoint.receive(msg),
);
serverEndpoint = MessageLspEndpoint((msg) => clientEndpoint.receive(msg));
LspServer(serverEndpoint).start();
return LspClient(clientEndpoint)..start();
}