Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/api/common/extHostBulkEdits.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { IExtensionDescription } from '../../../platform/extensions/common/extensions.js';
7
import { MainContext, MainThreadBulkEditsShape } from './extHost.protocol.js';
8
import { ExtHostDocumentsAndEditors } from './extHostDocumentsAndEditors.js';
9
import { IExtHostRpcService } from './extHostRpcService.js';
10
import { WorkspaceEdit } from './extHostTypeConverters.js';
11
import { SerializableObjectWithBuffers } from '../../services/extensions/common/proxyIdentifier.js';
12
import type * as vscode from 'vscode';
13
14
export class ExtHostBulkEdits {
15
16
private readonly _proxy: MainThreadBulkEditsShape;
17
private readonly _versionInformationProvider: WorkspaceEdit.IVersionInformationProvider;
18
19
constructor(
20
@IExtHostRpcService extHostRpc: IExtHostRpcService,
21
extHostDocumentsAndEditors: ExtHostDocumentsAndEditors,
22
) {
23
this._proxy = extHostRpc.getProxy(MainContext.MainThreadBulkEdits);
24
25
this._versionInformationProvider = {
26
getTextDocumentVersion: uri => extHostDocumentsAndEditors.getDocument(uri)?.version,
27
getNotebookDocumentVersion: () => undefined
28
};
29
}
30
31
applyWorkspaceEdit(edit: vscode.WorkspaceEdit, extension: IExtensionDescription, metadata: vscode.WorkspaceEditMetadata | undefined): Promise<boolean> {
32
const dto = new SerializableObjectWithBuffers(WorkspaceEdit.from(edit, this._versionInformationProvider));
33
return this._proxy.$tryApplyWorkspaceEdit(dto, undefined, metadata?.isRefactoring ?? false);
34
}
35
}
36
37