mcpls-core 0.8.0

Core library for MCP to LSP protocol translation
Documentation
//! LSP client implementation.
//!
//! This module provides the LSP client for communicating with language servers
//! over JSON-RPC 2.0.

mod client;
pub(crate) mod command_path;
mod env;
pub(crate) mod launcher;
mod lifecycle;
mod process;
mod publish_mailbox;
mod stderr;
mod transport;
pub(crate) mod tsserver_pin;
pub(crate) mod types;
pub(crate) mod vetting;

pub(crate) use client::{CONTENT_MODIFIED_RETRY_METHODS, ConnectionId, UnclassifiedError};
pub use client::{LspClient, MAX_CONSECUTIVE_UNDECODABLE_FRAMES, SHUTDOWN_TIMEOUT};
pub(crate) use env::{ManagedEnvVar, ParentEnv, process_env};
#[cfg(test)]
#[cfg(unix)]
pub(crate) use lifecycle::fake_lsp_server_with_dead_loop_and_live_child;
pub use lifecycle::{
    ChildWorkingDir, LspServer, ServerInitConfig, ServerLanes, ServerState, SpawnedServer,
};
pub(crate) use lifecycle::{
    ExitGrace, SUPPORTED_SYMBOL_KINDS, ServerStartOutcome, SpawnTrust, VettedInitConfig,
    child_env_var, current_environment,
};
#[cfg(test)]
pub(crate) use lifecycle::{
    fake_lsp_server, fake_lsp_server_with_config, fake_spawned_server_with_config,
};
pub use process::LIFELINE_SWEEP_BUDGET;
pub use publish_mailbox::{
    BoundedPublish, LostFiles, NotificationInbox, PublishDelivery, PublishReader, ServerMessage,
};
pub(crate) use publish_mailbox::{DropCounter, DropLog, Lane, NotificationSink};
#[cfg(test)]
pub(crate) use publish_mailbox::{MailboxLimits, PublishWriter, mailbox};
pub use transport::{LspTransport, LspTransportReader};
pub use types::{
    InboundMessage, JsonRpcError, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse,
    LspNotification, RequestId,
};