continue
continue copied to clipboard
Expose programmatic context provider registration
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 thanmain