pub struct ClientSocket(/* private fields */);
Expand description
The socket for Language Server to communicate with the Language Client peer.
Implementations§
Source§impl ClientSocket
impl ClientSocket
Sourcepub fn new_closed() -> Self
pub fn new_closed() -> Self
Create a closed socket outside a main loop. Any interaction will immediately return
an error of Error::ServiceStopped
.
This works as a placeholder where a socket is required but actually unused.
§Note
To prevent accidental misusages, this method is NOT implemented as
Default::default
intentionally.
Sourcepub async fn request<R: Request>(&self, params: R::Params) -> Result<R::Result>
pub async fn request<R: Request>(&self, params: R::Params) -> Result<R::Result>
Send a request to the peer and wait for its response.
§Errors
Error::ServiceStopped
when the service main loop stopped.Error::Response
when the peer replies an error.
Sourcepub fn notify<N: Notification>(&self, params: N::Params) -> Result<()>
pub fn notify<N: Notification>(&self, params: N::Params) -> Result<()>
Send a notification to the peer and wait for its response.
This is done asynchronously. An Ok
result indicates the message is successfully
queued, but may not be sent to the peer yet.
§Errors
Error::ServiceStopped
when the service main loop stopped.
Sourcepub fn emit<E: Send + 'static>(&self, event: E) -> Result<()>
pub fn emit<E: Send + 'static>(&self, event: E) -> Result<()>
Emit an arbitrary loopback event object to the service handler.
This is done asynchronously. An Ok
result indicates the message is successfully
queued, but may not be processed yet.
§Errors
Error::ServiceStopped
when the service main loop stopped.
Trait Implementations§
Source§impl Clone for ClientSocket
impl Clone for ClientSocket
Source§fn clone(&self) -> ClientSocket
fn clone(&self) -> ClientSocket
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ClientSocket
impl Debug for ClientSocket
Source§impl LanguageClient for &ClientSocket
impl LanguageClient for &ClientSocket
Source§type Error = Error
type Error = Error
ResponseError
for user implementations.Source§type NotifyResult = Result<(), Error>
type NotifyResult = Result<(), Error>
ControlFlow<Result<()>>
for user implementations.fn workspace_folders( &mut self, params: <WorkspaceFoldersRequest as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceFoldersRequest as Request>::Result, Self::Error>>
fn configuration( &mut self, params: <WorkspaceConfiguration as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceConfiguration as Request>::Result, Self::Error>>
fn work_done_progress_create( &mut self, params: <WorkDoneProgressCreate as Request>::Params, ) -> BoxFuture<'static, Result<<WorkDoneProgressCreate as Request>::Result, Self::Error>>
fn semantic_tokens_refresh( &mut self, params: <SemanticTokensRefresh as Request>::Params, ) -> BoxFuture<'static, Result<<SemanticTokensRefresh as Request>::Result, Self::Error>>
fn show_document( &mut self, params: <ShowDocument as Request>::Params, ) -> BoxFuture<'static, Result<<ShowDocument as Request>::Result, Self::Error>>
fn inline_value_refresh( &mut self, params: <InlineValueRefreshRequest as Request>::Params, ) -> BoxFuture<'static, Result<<InlineValueRefreshRequest as Request>::Result, Self::Error>>
fn inlay_hint_refresh( &mut self, params: <InlayHintRefreshRequest as Request>::Params, ) -> BoxFuture<'static, Result<<InlayHintRefreshRequest as Request>::Result, Self::Error>>
fn workspace_diagnostic_refresh( &mut self, params: <WorkspaceDiagnosticRefresh as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceDiagnosticRefresh as Request>::Result, Self::Error>>
fn register_capability( &mut self, params: <RegisterCapability as Request>::Params, ) -> BoxFuture<'static, Result<<RegisterCapability as Request>::Result, Self::Error>>
fn unregister_capability( &mut self, params: <UnregisterCapability as Request>::Params, ) -> BoxFuture<'static, Result<<UnregisterCapability as Request>::Result, Self::Error>>
fn show_message_request( &mut self, params: <ShowMessageRequest as Request>::Params, ) -> BoxFuture<'static, Result<<ShowMessageRequest as Request>::Result, Self::Error>>
fn code_lens_refresh( &mut self, params: <CodeLensRefresh as Request>::Params, ) -> BoxFuture<'static, Result<<CodeLensRefresh as Request>::Result, Self::Error>>
fn apply_edit( &mut self, params: <ApplyWorkspaceEdit as Request>::Params, ) -> BoxFuture<'static, Result<<ApplyWorkspaceEdit as Request>::Result, Self::Error>>
fn show_message( &mut self, params: <ShowMessage as Notification>::Params, ) -> Self::NotifyResult
fn log_message( &mut self, params: <LogMessage as Notification>::Params, ) -> Self::NotifyResult
fn telemetry_event( &mut self, params: <TelemetryEvent as Notification>::Params, ) -> Self::NotifyResult
fn publish_diagnostics( &mut self, params: <PublishDiagnostics as Notification>::Params, ) -> Self::NotifyResult
fn log_trace( &mut self, params: <LogTrace as Notification>::Params, ) -> Self::NotifyResult
fn cancel_request( &mut self, params: <Cancel as Notification>::Params, ) -> Self::NotifyResult
fn progress( &mut self, params: <Progress as Notification>::Params, ) -> Self::NotifyResult
Source§impl LanguageClient for ClientSocket
impl LanguageClient for ClientSocket
Source§type Error = Error
type Error = Error
ResponseError
for user implementations.Source§type NotifyResult = Result<(), Error>
type NotifyResult = Result<(), Error>
ControlFlow<Result<()>>
for user implementations.fn workspace_folders( &mut self, params: <WorkspaceFoldersRequest as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceFoldersRequest as Request>::Result, Self::Error>>
fn configuration( &mut self, params: <WorkspaceConfiguration as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceConfiguration as Request>::Result, Self::Error>>
fn work_done_progress_create( &mut self, params: <WorkDoneProgressCreate as Request>::Params, ) -> BoxFuture<'static, Result<<WorkDoneProgressCreate as Request>::Result, Self::Error>>
fn semantic_tokens_refresh( &mut self, params: <SemanticTokensRefresh as Request>::Params, ) -> BoxFuture<'static, Result<<SemanticTokensRefresh as Request>::Result, Self::Error>>
fn show_document( &mut self, params: <ShowDocument as Request>::Params, ) -> BoxFuture<'static, Result<<ShowDocument as Request>::Result, Self::Error>>
fn inline_value_refresh( &mut self, params: <InlineValueRefreshRequest as Request>::Params, ) -> BoxFuture<'static, Result<<InlineValueRefreshRequest as Request>::Result, Self::Error>>
fn inlay_hint_refresh( &mut self, params: <InlayHintRefreshRequest as Request>::Params, ) -> BoxFuture<'static, Result<<InlayHintRefreshRequest as Request>::Result, Self::Error>>
fn workspace_diagnostic_refresh( &mut self, params: <WorkspaceDiagnosticRefresh as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceDiagnosticRefresh as Request>::Result, Self::Error>>
fn register_capability( &mut self, params: <RegisterCapability as Request>::Params, ) -> BoxFuture<'static, Result<<RegisterCapability as Request>::Result, Self::Error>>
fn unregister_capability( &mut self, params: <UnregisterCapability as Request>::Params, ) -> BoxFuture<'static, Result<<UnregisterCapability as Request>::Result, Self::Error>>
fn show_message_request( &mut self, params: <ShowMessageRequest as Request>::Params, ) -> BoxFuture<'static, Result<<ShowMessageRequest as Request>::Result, Self::Error>>
fn code_lens_refresh( &mut self, params: <CodeLensRefresh as Request>::Params, ) -> BoxFuture<'static, Result<<CodeLensRefresh as Request>::Result, Self::Error>>
fn apply_edit( &mut self, params: <ApplyWorkspaceEdit as Request>::Params, ) -> BoxFuture<'static, Result<<ApplyWorkspaceEdit as Request>::Result, Self::Error>>
fn show_message( &mut self, params: <ShowMessage as Notification>::Params, ) -> Self::NotifyResult
fn log_message( &mut self, params: <LogMessage as Notification>::Params, ) -> Self::NotifyResult
fn telemetry_event( &mut self, params: <TelemetryEvent as Notification>::Params, ) -> Self::NotifyResult
fn publish_diagnostics( &mut self, params: <PublishDiagnostics as Notification>::Params, ) -> Self::NotifyResult
fn log_trace( &mut self, params: <LogTrace as Notification>::Params, ) -> Self::NotifyResult
fn cancel_request( &mut self, params: <Cancel as Notification>::Params, ) -> Self::NotifyResult
fn progress( &mut self, params: <Progress as Notification>::Params, ) -> Self::NotifyResult
Source§impl LspService for ClientSocket
Available on crate feature forward
only.
impl LspService for ClientSocket
forward
only.Source§fn notify(&mut self, notif: AnyNotification) -> ControlFlow<Result<()>>
fn notify(&mut self, notif: AnyNotification) -> ControlFlow<Result<()>>
Source§impl Service<AnyRequest> for ClientSocket
Available on crate feature forward
only.
impl Service<AnyRequest> for ClientSocket
forward
only.