pub trait LanguageServer {
type Error: From<ResponseError> + Send + 'static;
type NotifyResult: NotifyResult;
Show 68 methods
// Required method
fn initialize(
&mut self,
params: <Initialize as Request>::Params,
) -> BoxFuture<'static, Result<<Initialize as Request>::Result, Self::Error>>;
// Provided methods
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 document_diagnostic(
&mut self,
params: <DocumentDiagnosticRequest as Request>::Params,
) -> BoxFuture<'static, Result<<DocumentDiagnosticRequest as Request>::Result, Self::Error>> { ... }
fn workspace_diagnostic(
&mut self,
params: <WorkspaceDiagnosticRequest as Request>::Params,
) -> BoxFuture<'static, Result<<WorkspaceDiagnosticRequest 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 workspace_symbol_resolve(
&mut self,
params: <WorkspaceSymbolResolve as Request>::Params,
) -> BoxFuture<'static, Result<<WorkspaceSymbolResolve 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 { ... }
}Available on crate feature
omni-trait only.Expand description
The omnitrait defining all standard LSP requests and notifications supported by
lsp_types for a Language Server.
Required Associated Types§
Sourcetype Error: From<ResponseError> + Send + 'static
type Error: From<ResponseError> + Send + 'static
Should always be defined to ResponseError for user implementations.
Sourcetype NotifyResult: NotifyResult
type NotifyResult: NotifyResult
Should always be defined to ControlFlow<Result<()>> for user implementations.
Required Methods§
fn initialize( &mut self, params: <Initialize as Request>::Params, ) -> BoxFuture<'static, Result<<Initialize as Request>::Result, Self::Error>>
Provided Methods§
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 document_diagnostic( &mut self, params: <DocumentDiagnosticRequest as Request>::Params, ) -> BoxFuture<'static, Result<<DocumentDiagnosticRequest as Request>::Result, Self::Error>>
fn workspace_diagnostic( &mut self, params: <WorkspaceDiagnosticRequest as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceDiagnosticRequest 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 workspace_symbol_resolve( &mut self, params: <WorkspaceSymbolResolve as Request>::Params, ) -> BoxFuture<'static, Result<<WorkspaceSymbolResolve 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
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".