Path: blob/main/extensions/copilot/src/extension/prompt/vscode-node/devContainerConfigurationServiceImpl.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 * as vscode from 'vscode';6import { DevContainerConfigGeneratorArguments, DevContainerConfigGeneratorResult, IDevContainerConfigurationService } from '../../../platform/devcontainer/common/devContainerConfigurationService';7import { ISearchService } from '../../../platform/search/common/searchService';8import * as path from '../../../util/vs/base/common/path';9import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';10import { DevContainerConfigGenerator } from '../node/devContainerConfigGenerator';1112export class DevContainerConfigurationServiceImpl implements IDevContainerConfigurationService {1314declare readonly _serviceBrand: undefined;1516constructor(17@IInstantiationService private readonly instantiationService: IInstantiationService,18@ISearchService private readonly searchService: ISearchService,19) { }2021async generateConfiguration(args: DevContainerConfigGeneratorArguments, cancellationToken: vscode.CancellationToken): Promise<DevContainerConfigGeneratorResult> {22if (cancellationToken.isCancellationRequested) {23return { type: 'cancelled' };24}2526const filenames = (await Promise.all(['*', '*/*', '*/*/*']27.map(pattern => this.searchService.findFilesWithDefaultExcludes(new vscode.RelativePattern(args.rootUri, pattern), 1000, cancellationToken))))28.flat()29.map(entry => path.posix.relative(args.rootUri.path, entry.path));3031const generator = this.instantiationService.createInstance(DevContainerConfigGenerator);32return generator.generate(args.index, filenames, cancellationToken);33}34}353637