Struct async_lsp::ServerSocket
source · pub struct ServerSocket(_);Expand description
The socket for Language Client to communicate with the Language Server peer.
Implementations§
source§impl ServerSocket
impl ServerSocket
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::ServiceStoppedwhen the service main loop stopped.Error::Responsewhen 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::ServiceStoppedwhen 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::ServiceStoppedwhen the service main loop stopped.
Trait Implementations§
source§impl Clone for ServerSocket
impl Clone for ServerSocket
source§fn clone(&self) -> ServerSocket
fn clone(&self) -> ServerSocket
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for ServerSocket
impl Debug for ServerSocket
source§impl LanguageServer for &ServerSocket
impl LanguageServer for &ServerSocket
type Error = Error
type NotifyResult = Result<(), Error>
fn initialize( &mut self, params: <Initialize as Request>::Params ) -> BoxFuture<'static, Result<<Initialize as Request>::Result, Self::Error>>
fn shutdown( &mut self, (): <Shutdown as Request>::Params ) -> BoxFuture<'static, Result<<Shutdown as Request>::Result, Self::Error>>
fn implementation( &mut self, params: <GotoImplementation as Request>::Params ) -> BoxFuture<'static, Result<<GotoImplementation as Request>::Result, Self::Error>>
fn type_definition( &mut self, params: <GotoTypeDefinition as Request>::Params ) -> BoxFuture<'static, Result<<GotoTypeDefinition as Request>::Result, Self::Error>>
fn document_color( &mut self, params: <DocumentColor as Request>::Params ) -> BoxFuture<'static, Result<<DocumentColor as Request>::Result, Self::Error>>
fn color_presentation( &mut self, params: <ColorPresentationRequest as Request>::Params ) -> BoxFuture<'static, Result<<ColorPresentationRequest as Request>::Result, Self::Error>>
fn folding_range( &mut self, params: <FoldingRangeRequest as Request>::Params ) -> BoxFuture<'static, Result<<FoldingRangeRequest as Request>::Result, Self::Error>>
fn declaration( &mut self, params: <GotoDeclaration as Request>::Params ) -> BoxFuture<'static, Result<<GotoDeclaration as Request>::Result, Self::Error>>
fn selection_range( &mut self, params: <SelectionRangeRequest as Request>::Params ) -> BoxFuture<'static, Result<<SelectionRangeRequest as Request>::Result, Self::Error>>
fn prepare_call_hierarchy( &mut self, params: <CallHierarchyPrepare as Request>::Params ) -> BoxFuture<'static, Result<<CallHierarchyPrepare as Request>::Result, Self::Error>>
fn incoming_calls( &mut self, params: <CallHierarchyIncomingCalls as Request>::Params ) -> BoxFuture<'static, Result<<CallHierarchyIncomingCalls as Request>::Result, Self::Error>>
fn outgoing_calls( &mut self, params: <CallHierarchyOutgoingCalls as Request>::Params ) -> BoxFuture<'static, Result<<CallHierarchyOutgoingCalls as Request>::Result, Self::Error>>
fn semantic_tokens_full( &mut self, params: <SemanticTokensFullRequest as Request>::Params ) -> BoxFuture<'static, Result<<SemanticTokensFullRequest as Request>::Result, Self::Error>>
fn semantic_tokens_full_delta( &mut self, params: <SemanticTokensFullDeltaRequest as Request>::Params ) -> BoxFuture<'static, Result<<SemanticTokensFullDeltaRequest as Request>::Result, Self::Error>>
fn semantic_tokens_range( &mut self, params: <SemanticTokensRangeRequest as Request>::Params ) -> BoxFuture<'static, Result<<SemanticTokensRangeRequest as Request>::Result, Self::Error>>
fn linked_editing_range( &mut self, params: <LinkedEditingRange as Request>::Params ) -> BoxFuture<'static, Result<<LinkedEditingRange as Request>::Result, Self::Error>>
fn will_create_files( &mut self, params: <WillCreateFiles as Request>::Params ) -> BoxFuture<'static, Result<<WillCreateFiles as Request>::Result, Self::Error>>
fn will_rename_files( &mut self, params: <WillRenameFiles as Request>::Params ) -> BoxFuture<'static, Result<<WillRenameFiles as Request>::Result, Self::Error>>
fn will_delete_files( &mut self, params: <WillDeleteFiles as Request>::Params ) -> BoxFuture<'static, Result<<WillDeleteFiles as Request>::Result, Self::Error>>
fn moniker( &mut self, params: <MonikerRequest as Request>::Params ) -> BoxFuture<'static, Result<<MonikerRequest as Request>::Result, Self::Error>>
fn prepare_type_hierarchy( &mut self, params: <TypeHierarchyPrepare as Request>::Params ) -> BoxFuture<'static, Result<<TypeHierarchyPrepare as Request>::Result, Self::Error>>
fn supertypes( &mut self, params: <TypeHierarchySupertypes as Request>::Params ) -> BoxFuture<'static, Result<<TypeHierarchySupertypes as Request>::Result, Self::Error>>
fn subtypes( &mut self, params: <TypeHierarchySubtypes as Request>::Params ) -> BoxFuture<'static, Result<<TypeHierarchySubtypes as Request>::Result, Self::Error>>
fn inline_value( &mut self, params: <InlineValueRequest as Request>::Params ) -> BoxFuture<'static, Result<<InlineValueRequest as Request>::Result, Self::Error>>
fn inlay_hint( &mut self, params: <InlayHintRequest as Request>::Params ) -> BoxFuture<'static, Result<<InlayHintRequest as Request>::Result, Self::Error>>
fn inlay_hint_resolve( &mut self, params: <InlayHintResolveRequest as Request>::Params ) -> BoxFuture<'static, Result<<InlayHintResolveRequest as Request>::Result, Self::Error>>
fn will_save_wait_until( &mut self, params: <WillSaveWaitUntil as Request>::Params ) -> BoxFuture<'static, Result<<WillSaveWaitUntil as Request>::Result, Self::Error>>
fn completion( &mut self, params: <Completion as Request>::Params ) -> BoxFuture<'static, Result<<Completion as Request>::Result, Self::Error>>
fn completion_item_resolve( &mut self, params: <ResolveCompletionItem as Request>::Params ) -> BoxFuture<'static, Result<<ResolveCompletionItem as Request>::Result, Self::Error>>
fn hover( &mut self, params: <HoverRequest as Request>::Params ) -> BoxFuture<'static, Result<<HoverRequest as Request>::Result, Self::Error>>
fn signature_help( &mut self, params: <SignatureHelpRequest as Request>::Params ) -> BoxFuture<'static, Result<<SignatureHelpRequest as Request>::Result, Self::Error>>
fn definition( &mut self, params: <GotoDefinition as Request>::Params ) -> BoxFuture<'static, Result<<GotoDefinition as Request>::Result, Self::Error>>
fn references( &mut self, params: <References as Request>::Params ) -> BoxFuture<'static, Result<<References as Request>::Result, Self::Error>>
fn document_highlight( &mut self, params: <DocumentHighlightRequest as Request>::Params ) -> BoxFuture<'static, Result<<DocumentHighlightRequest as Request>::Result, Self::Error>>
fn document_symbol( &mut self, params: <DocumentSymbolRequest as Request>::Params ) -> BoxFuture<'static, Result<<DocumentSymbolRequest as Request>::Result, Self::Error>>
fn code_action( &mut self, params: <CodeActionRequest as Request>::Params ) -> BoxFuture<'static, Result<<CodeActionRequest as Request>::Result, Self::Error>>
fn code_action_resolve( &mut self, params: <CodeActionResolveRequest as Request>::Params ) -> BoxFuture<'static, Result<<CodeActionResolveRequest as Request>::Result, Self::Error>>
fn symbol( &mut self, params: <WorkspaceSymbolRequest as Request>::Params ) -> BoxFuture<'static, Result<<WorkspaceSymbolRequest as Request>::Result, Self::Error>>
fn code_lens( &mut self, params: <CodeLensRequest as Request>::Params ) -> BoxFuture<'static, Result<<CodeLensRequest as Request>::Result, Self::Error>>
fn code_lens_resolve( &mut self, params: <CodeLensResolve as Request>::Params ) -> BoxFuture<'static, Result<<CodeLensResolve as Request>::Result, Self::Error>>
fn document_link( &mut self, params: <DocumentLinkRequest as Request>::Params ) -> BoxFuture<'static, Result<<DocumentLinkRequest as Request>::Result, Self::Error>>
fn document_link_resolve( &mut self, params: <DocumentLinkResolve as Request>::Params ) -> BoxFuture<'static, Result<<DocumentLinkResolve as Request>::Result, Self::Error>>
fn formatting( &mut self, params: <Formatting as Request>::Params ) -> BoxFuture<'static, Result<<Formatting as Request>::Result, Self::Error>>
fn range_formatting( &mut self, params: <RangeFormatting as Request>::Params ) -> BoxFuture<'static, Result<<RangeFormatting as Request>::Result, Self::Error>>
fn on_type_formatting( &mut self, params: <OnTypeFormatting as Request>::Params ) -> BoxFuture<'static, Result<<OnTypeFormatting as Request>::Result, Self::Error>>
fn rename( &mut self, params: <Rename as Request>::Params ) -> BoxFuture<'static, Result<<Rename as Request>::Result, Self::Error>>
fn prepare_rename( &mut self, params: <PrepareRenameRequest as Request>::Params ) -> BoxFuture<'static, Result<<PrepareRenameRequest as Request>::Result, Self::Error>>
fn execute_command( &mut self, params: <ExecuteCommand as Request>::Params ) -> BoxFuture<'static, Result<<ExecuteCommand as Request>::Result, Self::Error>>
fn initialized( &mut self, params: <Initialized as Notification>::Params ) -> Self::NotifyResult
fn exit(&mut self, (): <Exit as Notification>::Params) -> Self::NotifyResult
fn did_change_workspace_folders( &mut self, params: <DidChangeWorkspaceFolders as Notification>::Params ) -> Self::NotifyResult
fn work_done_progress_cancel( &mut self, params: <WorkDoneProgressCancel as Notification>::Params ) -> Self::NotifyResult
fn did_create_files( &mut self, params: <DidCreateFiles as Notification>::Params ) -> Self::NotifyResult
fn did_rename_files( &mut self, params: <DidRenameFiles as Notification>::Params ) -> Self::NotifyResult
fn did_delete_files( &mut self, params: <DidDeleteFiles as Notification>::Params ) -> Self::NotifyResult
fn did_change_configuration( &mut self, params: <DidChangeConfiguration as Notification>::Params ) -> Self::NotifyResult
fn did_open( &mut self, params: <DidOpenTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_change( &mut self, params: <DidChangeTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_close( &mut self, params: <DidCloseTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_save( &mut self, params: <DidSaveTextDocument as Notification>::Params ) -> Self::NotifyResult
fn will_save( &mut self, params: <WillSaveTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_change_watched_files( &mut self, params: <DidChangeWatchedFiles as Notification>::Params ) -> Self::NotifyResult
fn set_trace( &mut self, params: <SetTrace 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 LanguageServer for ServerSocket
impl LanguageServer for ServerSocket
type Error = Error
type NotifyResult = Result<(), Error>
fn initialize( &mut self, params: <Initialize as Request>::Params ) -> BoxFuture<'static, Result<<Initialize as Request>::Result, Self::Error>>
fn shutdown( &mut self, (): <Shutdown as Request>::Params ) -> BoxFuture<'static, Result<<Shutdown as Request>::Result, Self::Error>>
fn implementation( &mut self, params: <GotoImplementation as Request>::Params ) -> BoxFuture<'static, Result<<GotoImplementation as Request>::Result, Self::Error>>
fn type_definition( &mut self, params: <GotoTypeDefinition as Request>::Params ) -> BoxFuture<'static, Result<<GotoTypeDefinition as Request>::Result, Self::Error>>
fn document_color( &mut self, params: <DocumentColor as Request>::Params ) -> BoxFuture<'static, Result<<DocumentColor as Request>::Result, Self::Error>>
fn color_presentation( &mut self, params: <ColorPresentationRequest as Request>::Params ) -> BoxFuture<'static, Result<<ColorPresentationRequest as Request>::Result, Self::Error>>
fn folding_range( &mut self, params: <FoldingRangeRequest as Request>::Params ) -> BoxFuture<'static, Result<<FoldingRangeRequest as Request>::Result, Self::Error>>
fn declaration( &mut self, params: <GotoDeclaration as Request>::Params ) -> BoxFuture<'static, Result<<GotoDeclaration as Request>::Result, Self::Error>>
fn selection_range( &mut self, params: <SelectionRangeRequest as Request>::Params ) -> BoxFuture<'static, Result<<SelectionRangeRequest as Request>::Result, Self::Error>>
fn prepare_call_hierarchy( &mut self, params: <CallHierarchyPrepare as Request>::Params ) -> BoxFuture<'static, Result<<CallHierarchyPrepare as Request>::Result, Self::Error>>
fn incoming_calls( &mut self, params: <CallHierarchyIncomingCalls as Request>::Params ) -> BoxFuture<'static, Result<<CallHierarchyIncomingCalls as Request>::Result, Self::Error>>
fn outgoing_calls( &mut self, params: <CallHierarchyOutgoingCalls as Request>::Params ) -> BoxFuture<'static, Result<<CallHierarchyOutgoingCalls as Request>::Result, Self::Error>>
fn semantic_tokens_full( &mut self, params: <SemanticTokensFullRequest as Request>::Params ) -> BoxFuture<'static, Result<<SemanticTokensFullRequest as Request>::Result, Self::Error>>
fn semantic_tokens_full_delta( &mut self, params: <SemanticTokensFullDeltaRequest as Request>::Params ) -> BoxFuture<'static, Result<<SemanticTokensFullDeltaRequest as Request>::Result, Self::Error>>
fn semantic_tokens_range( &mut self, params: <SemanticTokensRangeRequest as Request>::Params ) -> BoxFuture<'static, Result<<SemanticTokensRangeRequest as Request>::Result, Self::Error>>
fn linked_editing_range( &mut self, params: <LinkedEditingRange as Request>::Params ) -> BoxFuture<'static, Result<<LinkedEditingRange as Request>::Result, Self::Error>>
fn will_create_files( &mut self, params: <WillCreateFiles as Request>::Params ) -> BoxFuture<'static, Result<<WillCreateFiles as Request>::Result, Self::Error>>
fn will_rename_files( &mut self, params: <WillRenameFiles as Request>::Params ) -> BoxFuture<'static, Result<<WillRenameFiles as Request>::Result, Self::Error>>
fn will_delete_files( &mut self, params: <WillDeleteFiles as Request>::Params ) -> BoxFuture<'static, Result<<WillDeleteFiles as Request>::Result, Self::Error>>
fn moniker( &mut self, params: <MonikerRequest as Request>::Params ) -> BoxFuture<'static, Result<<MonikerRequest as Request>::Result, Self::Error>>
fn prepare_type_hierarchy( &mut self, params: <TypeHierarchyPrepare as Request>::Params ) -> BoxFuture<'static, Result<<TypeHierarchyPrepare as Request>::Result, Self::Error>>
fn supertypes( &mut self, params: <TypeHierarchySupertypes as Request>::Params ) -> BoxFuture<'static, Result<<TypeHierarchySupertypes as Request>::Result, Self::Error>>
fn subtypes( &mut self, params: <TypeHierarchySubtypes as Request>::Params ) -> BoxFuture<'static, Result<<TypeHierarchySubtypes as Request>::Result, Self::Error>>
fn inline_value( &mut self, params: <InlineValueRequest as Request>::Params ) -> BoxFuture<'static, Result<<InlineValueRequest as Request>::Result, Self::Error>>
fn inlay_hint( &mut self, params: <InlayHintRequest as Request>::Params ) -> BoxFuture<'static, Result<<InlayHintRequest as Request>::Result, Self::Error>>
fn inlay_hint_resolve( &mut self, params: <InlayHintResolveRequest as Request>::Params ) -> BoxFuture<'static, Result<<InlayHintResolveRequest as Request>::Result, Self::Error>>
fn will_save_wait_until( &mut self, params: <WillSaveWaitUntil as Request>::Params ) -> BoxFuture<'static, Result<<WillSaveWaitUntil as Request>::Result, Self::Error>>
fn completion( &mut self, params: <Completion as Request>::Params ) -> BoxFuture<'static, Result<<Completion as Request>::Result, Self::Error>>
fn completion_item_resolve( &mut self, params: <ResolveCompletionItem as Request>::Params ) -> BoxFuture<'static, Result<<ResolveCompletionItem as Request>::Result, Self::Error>>
fn hover( &mut self, params: <HoverRequest as Request>::Params ) -> BoxFuture<'static, Result<<HoverRequest as Request>::Result, Self::Error>>
fn signature_help( &mut self, params: <SignatureHelpRequest as Request>::Params ) -> BoxFuture<'static, Result<<SignatureHelpRequest as Request>::Result, Self::Error>>
fn definition( &mut self, params: <GotoDefinition as Request>::Params ) -> BoxFuture<'static, Result<<GotoDefinition as Request>::Result, Self::Error>>
fn references( &mut self, params: <References as Request>::Params ) -> BoxFuture<'static, Result<<References as Request>::Result, Self::Error>>
fn document_highlight( &mut self, params: <DocumentHighlightRequest as Request>::Params ) -> BoxFuture<'static, Result<<DocumentHighlightRequest as Request>::Result, Self::Error>>
fn document_symbol( &mut self, params: <DocumentSymbolRequest as Request>::Params ) -> BoxFuture<'static, Result<<DocumentSymbolRequest as Request>::Result, Self::Error>>
fn code_action( &mut self, params: <CodeActionRequest as Request>::Params ) -> BoxFuture<'static, Result<<CodeActionRequest as Request>::Result, Self::Error>>
fn code_action_resolve( &mut self, params: <CodeActionResolveRequest as Request>::Params ) -> BoxFuture<'static, Result<<CodeActionResolveRequest as Request>::Result, Self::Error>>
fn symbol( &mut self, params: <WorkspaceSymbolRequest as Request>::Params ) -> BoxFuture<'static, Result<<WorkspaceSymbolRequest as Request>::Result, Self::Error>>
fn code_lens( &mut self, params: <CodeLensRequest as Request>::Params ) -> BoxFuture<'static, Result<<CodeLensRequest as Request>::Result, Self::Error>>
fn code_lens_resolve( &mut self, params: <CodeLensResolve as Request>::Params ) -> BoxFuture<'static, Result<<CodeLensResolve as Request>::Result, Self::Error>>
fn document_link( &mut self, params: <DocumentLinkRequest as Request>::Params ) -> BoxFuture<'static, Result<<DocumentLinkRequest as Request>::Result, Self::Error>>
fn document_link_resolve( &mut self, params: <DocumentLinkResolve as Request>::Params ) -> BoxFuture<'static, Result<<DocumentLinkResolve as Request>::Result, Self::Error>>
fn formatting( &mut self, params: <Formatting as Request>::Params ) -> BoxFuture<'static, Result<<Formatting as Request>::Result, Self::Error>>
fn range_formatting( &mut self, params: <RangeFormatting as Request>::Params ) -> BoxFuture<'static, Result<<RangeFormatting as Request>::Result, Self::Error>>
fn on_type_formatting( &mut self, params: <OnTypeFormatting as Request>::Params ) -> BoxFuture<'static, Result<<OnTypeFormatting as Request>::Result, Self::Error>>
fn rename( &mut self, params: <Rename as Request>::Params ) -> BoxFuture<'static, Result<<Rename as Request>::Result, Self::Error>>
fn prepare_rename( &mut self, params: <PrepareRenameRequest as Request>::Params ) -> BoxFuture<'static, Result<<PrepareRenameRequest as Request>::Result, Self::Error>>
fn execute_command( &mut self, params: <ExecuteCommand as Request>::Params ) -> BoxFuture<'static, Result<<ExecuteCommand as Request>::Result, Self::Error>>
fn initialized( &mut self, params: <Initialized as Notification>::Params ) -> Self::NotifyResult
fn exit(&mut self, (): <Exit as Notification>::Params) -> Self::NotifyResult
fn did_change_workspace_folders( &mut self, params: <DidChangeWorkspaceFolders as Notification>::Params ) -> Self::NotifyResult
fn work_done_progress_cancel( &mut self, params: <WorkDoneProgressCancel as Notification>::Params ) -> Self::NotifyResult
fn did_create_files( &mut self, params: <DidCreateFiles as Notification>::Params ) -> Self::NotifyResult
fn did_rename_files( &mut self, params: <DidRenameFiles as Notification>::Params ) -> Self::NotifyResult
fn did_delete_files( &mut self, params: <DidDeleteFiles as Notification>::Params ) -> Self::NotifyResult
fn did_change_configuration( &mut self, params: <DidChangeConfiguration as Notification>::Params ) -> Self::NotifyResult
fn did_open( &mut self, params: <DidOpenTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_change( &mut self, params: <DidChangeTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_close( &mut self, params: <DidCloseTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_save( &mut self, params: <DidSaveTextDocument as Notification>::Params ) -> Self::NotifyResult
fn will_save( &mut self, params: <WillSaveTextDocument as Notification>::Params ) -> Self::NotifyResult
fn did_change_watched_files( &mut self, params: <DidChangeWatchedFiles as Notification>::Params ) -> Self::NotifyResult
fn set_trace( &mut self, params: <SetTrace 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
Auto Trait Implementations§
impl !RefUnwindSafe for ServerSocket
impl Send for ServerSocket
impl Sync for ServerSocket
impl Unpin for ServerSocket
impl !UnwindSafe for ServerSocket
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more