Path: blob/main/extensions/copilot/src/extension/inlineEdits/node/createNextEditProvider.ts
13399 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { registerNextEditProviderId, XTabProviderId } from '../../../platform/configuration/common/configurationService';6import { IStatelessNextEditProvider } from '../../../platform/inlineEdits/common/statelessNextEditProvider';7import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';8import { XtabProvider } from '../../xtab/node/xtabProvider';910export const defaultNextEditProviderId = XTabProviderId;1112export const supportedProviderIds = {13[registerNextEditProviderId(XtabProvider.ID)]: XtabProvider,14};1516export function createNextEditProvider(nextEditProviderId: string | undefined, instantiationService: IInstantiationService): IStatelessNextEditProvider {17const providerId = nextEditProviderId ?? defaultNextEditProviderId;18const provider = supportedProviderIds[providerId as keyof typeof supportedProviderIds];19if (!provider) {20throw new Error(`Unknown next edit provider ID: ${providerId}`);21}22return instantiationService.createInstance(provider);23}242526