Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/extension/inlineEdits/node/createNextEditProvider.ts
13399 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { registerNextEditProviderId, XTabProviderId } from '../../../platform/configuration/common/configurationService';
7
import { IStatelessNextEditProvider } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
8
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
9
import { XtabProvider } from '../../xtab/node/xtabProvider';
10
11
export const defaultNextEditProviderId = XTabProviderId;
12
13
export const supportedProviderIds = {
14
[registerNextEditProviderId(XtabProvider.ID)]: XtabProvider,
15
};
16
17
export function createNextEditProvider(nextEditProviderId: string | undefined, instantiationService: IInstantiationService): IStatelessNextEditProvider {
18
const providerId = nextEditProviderId ?? defaultNextEditProviderId;
19
const provider = supportedProviderIds[providerId as keyof typeof supportedProviderIds];
20
if (!provider) {
21
throw new Error(`Unknown next edit provider ID: ${providerId}`);
22
}
23
return instantiationService.createInstance(provider);
24
}
25
26