Path: blob/main/extensions/copilot/src/extension/completions/vscode-node/copilotInlineCompletionItemProviderService.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 { InlineCompletionItemProvider } from 'vscode';6import { Disposable } from '../../../util/vs/base/common/lifecycle';7import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';8import { createContext, setup } from '../../completions-core/vscode-node/completionsServiceBridges';9import { CopilotInlineCompletionItemProvider } from '../../completions-core/vscode-node/extension/src/vscodeInlineCompletionItemProvider';10import { ICopilotInlineCompletionItemProviderService } from '../common/copilotInlineCompletionItemProviderService';1112export class CopilotInlineCompletionItemProviderService extends Disposable implements ICopilotInlineCompletionItemProviderService {13readonly _serviceBrand: undefined;1415private _provider: InlineCompletionItemProvider | undefined;16private _completionsInstantiationService: IInstantiationService | undefined;1718constructor(19@IInstantiationService private readonly _instantiationService: IInstantiationService,20) {21super();22}2324getOrCreateInstantiationService(): IInstantiationService {25if (!this._completionsInstantiationService) {26this._completionsInstantiationService = this._instantiationService.invokeFunction(createContext, this._store);27}28return this._completionsInstantiationService;29}3031getOrCreateProvider(): InlineCompletionItemProvider {32if (!this._provider) {33this._completionsInstantiationService = this.getOrCreateInstantiationService();34this._completionsInstantiationService.invokeFunction(setup, this._store);35this._provider = this._register(this._completionsInstantiationService.createInstance(CopilotInlineCompletionItemProvider));36}37return this._provider;38}39}404142