@kkdev92/vscode-ext-kit - v4.1.1
    Preparing search index...

    Interface ExtensionApplication<TApi>

    An extension, ready to be re-exported from extension.ts.

    deactivate is the single cleanup path; activate registers only a synchronous failsafe on context.subscriptions.

    One application per definition. A second activate while the first is starting or running joins that start and resolves to the same value; after deactivate, or after a start that failed, it rejects with a FrameworkError of kind activation (code EXTENSION_NOT_RESTARTABLE) rather than building a second application. VS Code activates an extension once per session, so this only shows up in a test that reuses one definition — build one per test, or run the plan through createTestHost.

    interface ExtensionApplication<TApi = void> {
        activate: (context: ExtensionContext) => Promise<TApi>;
        commands: CommandExecutor;
        deactivate: () => Promise<void>;
        plan: ApplicationPlan;
    }

    Type Parameters

    • TApi = void
    Index
    activate: (context: ExtensionContext) => Promise<TApi>

    Declared as a property, not a method, so export const activate = app.activate is safe: an extracted method would lose its receiver.

    commands: CommandExecutor

    Typed command invocation, usable from anywhere in the extension.

    deactivate: () => Promise<void>

    Idempotent entry to the application's single asynchronous stop path.

    The compiled plan. Exposed so tests can run it on fakes.