Interface FeatureClient<M, CO>

interface FeatureClient<M, CO = object> {
    clientOptions: CO;
    code2ProtocolConverter: Code2ProtocolConverter;
    middleware: M;
    protocol2CodeConverter: Protocol2CodeConverter;
    tabsModel: TabsModel;
    error(
        message: string,
        data?: any,
        showNotification?: boolean | "force",
    ): void;
    getFeature(
        request: "textDocument/didOpen",
    ): DidOpenTextDocumentFeatureShape;
    getFeature(
        request: "textDocument/didChange",
    ): DidChangeTextDocumentFeatureShape;
    getFeature(
        request: "textDocument/willSave",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentSendFeature<
        (textDocument: TextDocument) => Promise<void>,
    >;
    getFeature(
        request: "textDocument/willSaveWaitUntil",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentSendFeature<
        (textDocument: TextDocument) => ProviderResult<TextEdit[]>,
    >;
    getFeature(
        request: "textDocument/didSave",
    ): DidSaveTextDocumentFeatureShape;
    getFeature(
        request: "textDocument/didClose",
    ): DidCloseTextDocumentFeatureShape;
    getFeature(
        request: "workspace/didCreateFiles",
    ): DynamicFeature<FileOperationRegistrationOptions> & {
        send: (event: FileCreateEvent) => Promise<void>;
    };
    getFeature(
        request: "workspace/didRenameFiles",
    ): DynamicFeature<FileOperationRegistrationOptions> & {
        send: (event: FileRenameEvent) => Promise<void>;
    };
    getFeature(
        request: "workspace/didDeleteFiles",
    ): DynamicFeature<FileOperationRegistrationOptions> & {
        send: (event: FileDeleteEvent) => Promise<void>;
    };
    getFeature(
        request: "workspace/willCreateFiles",
    ): DynamicFeature<FileOperationRegistrationOptions> & {
        send: (event: FileWillCreateEvent) => Promise<void>;
    };
    getFeature(
        request: "workspace/willRenameFiles",
    ): DynamicFeature<FileOperationRegistrationOptions> & {
        send: (event: FileWillRenameEvent) => Promise<void>;
    };
    getFeature(
        request: "workspace/willDeleteFiles",
    ): DynamicFeature<FileOperationRegistrationOptions> & {
        send: (event: FileWillDeleteEvent) => Promise<void>;
    };
    getFeature(
        request: "textDocument/completion",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        CompletionItemProvider,
    >;
    getFeature(
        request: "textDocument/hover",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        HoverProvider,
    >;
    getFeature(
        request: "textDocument/signatureHelp",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        SignatureHelpProvider,
    >;
    getFeature(
        request: "textDocument/definition",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DefinitionProvider,
    >;
    getFeature(
        request: "textDocument/references",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        ReferenceProvider,
    >;
    getFeature(
        request: "textDocument/documentHighlight",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DocumentHighlightProvider,
    >;
    getFeature(
        request: "textDocument/codeAction",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        CodeActionProvider,
    >;
    getFeature(
        request: "textDocument/codeLens",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        CodeLensProviderShape,
    >;
    getFeature(
        request: "textDocument/formatting",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DocumentFormattingEditProvider,
    >;
    getFeature(
        request: "textDocument/rangeFormatting",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DocumentRangeFormattingEditProvider,
    >;
    getFeature(
        request: "textDocument/onTypeFormatting",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        OnTypeFormattingEditProvider,
    >;
    getFeature(
        request: "textDocument/rename",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        RenameProvider,
    >;
    getFeature(
        request: "textDocument/documentSymbol",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DocumentSymbolProvider,
    >;
    getFeature(
        request: "textDocument/documentLink",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DocumentLinkProvider,
    >;
    getFeature(
        request: "textDocument/documentColor",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DocumentColorProvider,
    >;
    getFeature(
        request: "textDocument/declaration",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DeclarationProvider,
    >;
    getFeature(
        request: "textDocument/foldingRange",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        FoldingRangeProviderShape,
    >;
    getFeature(
        request: "textDocument/implementation",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        ImplementationProvider,
    >;
    getFeature(
        request: "textDocument/selectionRange",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        SelectionRangeProvider,
    >;
    getFeature(
        request: "textDocument/typeDefinition",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        TypeDefinitionProvider,
    >;
    getFeature(
        request: "textDocument/prepareCallHierarchy",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        CallHierarchyProvider,
    >;
    getFeature(
        request: "textDocument/semanticTokens",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        SemanticTokensProviderShape,
    >;
    getFeature(
        request: "textDocument/linkedEditingRange",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        LinkedEditingRangeProvider,
    >;
    getFeature(
        request: "textDocument/prepareTypeHierarchy",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        TypeHierarchyProvider,
    >;
    getFeature(
        request: "textDocument/inlineValue",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        InlineValueProviderShape,
    >;
    getFeature(
        request: "textDocument/inlayHint",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        InlayHintsProviderShape,
    >;
    getFeature(
        request: "workspace/symbol",
    ): DynamicFeature<TextDocumentRegistrationOptions> & WorkspaceProviderFeature<
        WorkspaceSymbolProvider,
    >;
    getFeature(
        request: "textDocument/diagnostic",
    ): DynamicFeature<TextDocumentRegistrationOptions> & TextDocumentProviderFeature<
        DiagnosticProviderShape,
    > & DiagnosticFeatureShape;
    getFeature(
        request: "notebookDocument/sync",
    ): DynamicFeature<NotebookDocumentSyncRegistrationOptions> & NotebookDocumentProviderShape;
    getFeature(
        request: "textDocument/inlineCompletion",
    ):
        | undefined
        | DynamicFeature<InlineCompletionRegistrationOptions> & TextDocumentProviderFeature<
            InlineCompletionItemProvider,
        >;
    getFeature(
        request: "workspace/executeCommand",
    ): DynamicFeature<ExecuteCommandOptions>;
    handleFailedRequest<T>(
        type: MessageSignature,
        token: undefined | CancellationToken,
        error: any,
        defaultValue: T,
        showNotification?: boolean,
        throwOnCancel?: boolean,
    ): T;
    hasDedicatedTextSynchronizationFeature(textDocument: TextDocument): boolean;
    info(message: string, data?: any, showNotification?: boolean): void;
    isRunning(): boolean;
    onNotification<RO>(
        type: ProtocolNotificationType0<RO>,
        handler: NotificationHandler0,
    ): Disposable;
    onNotification<P, RO>(
        type: ProtocolNotificationType<P, RO>,
        handler: NotificationHandler<P>,
    ): Disposable;
    onNotification(
        type: NotificationType0,
        handler: NotificationHandler0,
    ): Disposable;
    onNotification<P>(
        type: NotificationType<P>,
        handler: NotificationHandler<P>,
    ): Disposable;
    onNotification(
        method: string,
        handler: GenericNotificationHandler,
    ): Disposable;
    onProgress<P>(
        type: ProgressType<P>,
        token: string | number,
        handler: NotificationHandler<P>,
    ): Disposable;
    onRequest<R, PR, E, RO>(
        type: ProtocolRequestType0<R, PR, E, RO>,
        handler: RequestHandler0<R, E>,
    ): Disposable;
    onRequest<P, R, PR, E, RO>(
        type: ProtocolRequestType<P, R, PR, E, RO>,
        handler: RequestHandler<P, R, E>,
    ): Disposable;
    onRequest<R, E>(
        type: RequestType0<R, E>,
        handler: RequestHandler0<R, E>,
    ): Disposable;
    onRequest<P, R, E>(
        type: RequestType<P, R, E>,
        handler: RequestHandler<P, R, E>,
    ): Disposable;
    onRequest<R, E>(
        method: string,
        handler: GenericRequestHandler<R, E>,
    ): Disposable;
    sendNotification<RO>(type: ProtocolNotificationType0<RO>): Promise<void>;
    sendNotification<P, RO>(
        type: ProtocolNotificationType<P, RO>,
        params?: P,
    ): Promise<void>;
    sendNotification(type: NotificationType0): Promise<void>;
    sendNotification<P>(type: NotificationType<P>, params?: P): Promise<void>;
    sendNotification(method: string): Promise<void>;
    sendNotification(method: string, params: any): Promise<void>;
    sendRequest<R, PR, E, RO>(
        type: ProtocolRequestType0<R, PR, E, RO>,
        token?: CancellationToken,
    ): Promise<R>;
    sendRequest<P, R, PR, E, RO>(
        type: ProtocolRequestType<P, R, PR, E, RO>,
        params: P,
        token?: CancellationToken,
    ): Promise<R>;
    sendRequest<R, E>(
        type: RequestType0<R, E>,
        token?: CancellationToken,
    ): Promise<R>;
    sendRequest<P, R, E>(
        type: RequestType<P, R, E>,
        params: P,
        token?: CancellationToken,
    ): Promise<R>;
    sendRequest<R>(method: string, token?: CancellationToken): Promise<R>;
    sendRequest<R>(
        method: string,
        param: any,
        token?: CancellationToken,
    ): Promise<R>;
    start(): Promise<void>;
    stop(): Promise<void>;
    warn(message: string, data?: any, showNotification?: boolean): void;
}

Type Parameters

  • M
  • CO = object

Implemented by

Properties

clientOptions: CO
code2ProtocolConverter: Code2ProtocolConverter
middleware: M
protocol2CodeConverter: Protocol2CodeConverter
tabsModel: TabsModel

Methods