12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
- import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';
- import { URI } from '../../../base/common/uri.js';
- import { isObject } from '../../../base/common/types.js';
- export const IBulkEditService = createDecorator('IWorkspaceEditService');
- function isWorkspaceFileEdit(thing) {
- return isObject(thing) && (Boolean(thing.newUri) || Boolean(thing.oldUri));
- }
- function isWorkspaceTextEdit(thing) {
- return isObject(thing) && URI.isUri(thing.resource) && isObject(thing.edit);
- }
- export class ResourceEdit {
- constructor(metadata) {
- this.metadata = metadata;
- }
- static convert(edit) {
- return edit.edits.map(edit => {
- if (isWorkspaceTextEdit(edit)) {
- return new ResourceTextEdit(edit.resource, edit.edit, edit.modelVersionId, edit.metadata);
- }
- if (isWorkspaceFileEdit(edit)) {
- return new ResourceFileEdit(edit.oldUri, edit.newUri, edit.options, edit.metadata);
- }
- throw new Error('Unsupported edit');
- });
- }
- }
- export class ResourceTextEdit extends ResourceEdit {
- constructor(resource, textEdit, versionId, metadata) {
- super(metadata);
- this.resource = resource;
- this.textEdit = textEdit;
- this.versionId = versionId;
- }
- }
- export class ResourceFileEdit extends ResourceEdit {
- constructor(oldResource, newResource, options, metadata) {
- super(metadata);
- this.oldResource = oldResource;
- this.newResource = newResource;
- this.options = options;
- }
- }
|