pub async fn spawn_with_io<R, W>(
config: ServerConfig,
workspace_root: PathBuf,
reader: LspReader<R>,
writer: LspWriter<W>,
stderr: Option<ChildStderr>,
child: Option<Child>,
logger: LspLogger,
apply_edit_bus: Option<ApplyEditBus>,
configuration_bus: Option<ConfigurationBus>,
show_document_bus: Option<ShowDocumentBus>,
show_message_request_bus: Option<ShowMessageRequestBus>,
event_bus: Option<Arc<EventBus>>,
) -> LspResult<ServerHandle>Expand description
Spawn the actor against pre-existing LspReader / LspWriter
halves. Used by tests (mock server over a duplex pipe) and
by future embedded transports (TCP, named pipe).
child is None for in-process tests (the duplex partner is
a tokio task) and Some(_) for the real child-process path.
When None, the shutdown sequence skips the child-exit wait.