Path: blob/main/extensions/copilot/test/base/extHostContext/simulationWorkspaceExtHost.ts
13394 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*--------------------------------------------------------------------------------------------*/4// Allow importing vscode here. eslint does not let us exclude this path: https://github.com/import-js/eslint-plugin-import/issues/28005/* eslint-disable copilot-local/no-runtime-import */67import { writeFileSync } from 'fs';8import * as vscode from 'vscode';9import { TestingServiceCollection } from '../../../src/platform/test/node/services';10import { SimulationWorkspace } from '../../../src/platform/test/node/simulationWorkspace';11import { isEqualOrParent } from '../../../src/util/vs/base/common/resources';12import { addExtensionHostSimulationServices } from './simulationExtHostContext';1314export class SimulationWorkspaceExtHost extends SimulationWorkspace {15private readonly _root = vscode.workspace.workspaceFolders![0].uri;1617public override setupServices(testingServiceCollection: TestingServiceCollection): void {18super.setupServices(testingServiceCollection);19addExtensionHostSimulationServices(testingServiceCollection);20vscode.commands.executeCommand('setContext', 'vscode.chat.tools.global.autoApprove.testMode', true);21vscode.workspace.getConfiguration('chat.tools.global').update('autoApprove', true, vscode.ConfigurationTarget.Global);22vscode.workspace.getConfiguration('chat.tools.terminal').update('autoReplyToPrompts', true, vscode.ConfigurationTarget.Global);23}2425override applyEdits(uri: vscode.Uri, edits: vscode.TextEdit[], initialRange?: vscode.Range): vscode.Range {26const res = super.applyEdits(uri, edits, initialRange);2728if (isEqualOrParent(uri, this._root)) {29const document = this.getDocument(uri);30writeFileSync(uri.fsPath, document.getText(), 'utf8');31}3233return res;34}35}363738