continue icon indicating copy to clipboard operation
continue copied to clipboard

Expose programmatic context provider registration

Open samelhusseini opened this issue 1 year ago • 0 comments

Description

This allows vscode extension developers to create an extension that depends on the continue.continue extension and registers custom context providers programmatically.

The API uses the same interface for context providers configured in config.ts.

Sample use case:


class MyCustomProvider implements IContextProvider {

  get description(): ContextProviderDescription {
    return {
      title: "custom",
      displayTitle: "Custom",
      type: "normal",
    };
  }

  async getContextItems(
    query: string,
    extras: ContextProviderExtras
  ): Promise<ContextItem[]> {
    return [
      {
        name: "Custom",
        description: "Custom description",
        content: "Custom content",
      },
    ];
  }

  async loadSubmenuItems(
    args: LoadSubmenuItemsArgs
  ): Promise<ContextSubmenuItem[]> {
    return [];
  }
}

const customProvider = new MyCustomProvider();
const continueExt = vscode.extensions.getExtension("continue.continue");
const continueApi = continueExt?.exports;
continueApi?.registerCustomContextProvider(customProvider);

Related #1041

  • [x] The base branch of this PR is preview, rather than main

samelhusseini avatar May 15 '24 21:05 samelhusseini