Path: blob/main/extensions/copilot/src/extension/conversation/node/aiMappedEditsProvider.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*--------------------------------------------------------------------------------------------*/4import type * as vscode from 'vscode';5import { ICodeMapperService } from '../../prompts/node/codeMapper/codeMapperService';67export class AIMappedEditsProvider2 implements vscode.MappedEditsProvider2 {89constructor(10@ICodeMapperService private readonly _codeMapperService: ICodeMapperService,11) {12}1314async provideMappedEdits(15request: vscode.MappedEditsRequest,16response: vscode.MappedEditsResponseStream,17token: vscode.CancellationToken18): Promise<vscode.MappedEditsResult | null | undefined> {1920const errorMessages: string[] = [];21for (const codeBlock of request.codeBlocks) {2223if (token.isCancellationRequested) {24return undefined;25}2627const result = await this._codeMapperService.mapCode({ codeBlock, location: request.location }, response, {28isAgent: request.location === 'tool',29chatRequestId: request.chatRequestId,30chatSessionId: request.chatSessionId,31chatRequestSource: `api_${request.location}`,32chatRequestModel: request.chatRequestModel,33}, token);34if (result) {35if (result.errorDetails) {36errorMessages.push(result.errorDetails.message);37}38}39}40if (errorMessages.length) {41return { errorMessage: errorMessages.join('\n') };42}43return {};44}45}464748