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.