mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-12 19:39:20 -05:00
37 lines
1.9 KiB
TypeScript
37 lines
1.9 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
// Allow importing vscode here. eslint does not let us exclude this path: https://github.com/import-js/eslint-plugin-import/issues/2800
|
|
/* eslint-disable local/no-runtime-import */
|
|
|
|
import { writeFileSync } from 'fs';
|
|
import * as vscode from 'vscode';
|
|
import { TestingServiceCollection } from '../../../src/platform/test/node/services';
|
|
import { SimulationWorkspace } from '../../../src/platform/test/node/simulationWorkspace';
|
|
import { isEqualOrParent } from '../../../src/util/vs/base/common/resources';
|
|
import { addExtensionHostSimulationServices } from './simulationExtHostContext';
|
|
|
|
export class SimulationWorkspaceExtHost extends SimulationWorkspace {
|
|
private readonly _root = vscode.workspace.workspaceFolders![0].uri;
|
|
|
|
public override setupServices(testingServiceCollection: TestingServiceCollection): void {
|
|
super.setupServices(testingServiceCollection);
|
|
addExtensionHostSimulationServices(testingServiceCollection);
|
|
vscode.commands.executeCommand('setContext', 'vscode.chat.tools.global.autoApprove.testMode', true);
|
|
vscode.workspace.getConfiguration('chat.tools.global').update('autoApprove', true, vscode.ConfigurationTarget.Global);
|
|
vscode.workspace.getConfiguration('chat.tools.terminal').update('autoReplyToPrompts', true, vscode.ConfigurationTarget.Global);
|
|
}
|
|
|
|
override applyEdits(uri: vscode.Uri, edits: vscode.TextEdit[], initialRange?: vscode.Range): vscode.Range {
|
|
const res = super.applyEdits(uri, edits, initialRange);
|
|
|
|
if (isEqualOrParent(uri, this._root)) {
|
|
const document = this.getDocument(uri);
|
|
writeFileSync(uri.fsPath, document.getText(), 'utf8');
|
|
}
|
|
|
|
return res;
|
|
}
|
|
}
|