diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 16d0c0b97c46f542d1c6e90ca16e412b092270e7..3b73a996d6c21199a7e7f8a91954ff49adb7b54b 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -482,6 +482,16 @@ declare module 'vscode' { //#endregion + //#region joh: https://github.com/Microsoft/vscode/issues/10659 + + export interface WorkspaceEdit { + createFile(uri: Uri): void; + deleteFile(uri: Uri): void; + renameFile(oldUri: Uri, newUri: Uri): void; + } + + //#endregion + //#region mjbvz: Unused diagnostics /** * Additional metadata about the type of diagnostic. diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index 892cf017aed4f27ccd74d6967b5961d9b1a6c2df..485a3fee2f9c94007745fa06a1e8364f232c46fe 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -21,7 +21,7 @@ import { ISelection } from 'vs/editor/common/core/selection'; import * as htmlContent from 'vs/base/common/htmlContent'; import { IRelativePattern } from 'vs/base/common/glob'; import * as languageSelector from 'vs/editor/common/modes/languageSelector'; -import { WorkspaceEditDto, ResourceTextEditDto } from 'vs/workbench/api/node/extHost.protocol'; +import { WorkspaceEditDto, ResourceTextEditDto, ResourceFileEditDto } from 'vs/workbench/api/node/extHost.protocol'; import { MarkerSeverity, IRelatedInformation, IMarkerData, MarkerTag } from 'vs/platform/markers/common/markers'; import { ACTIVE_GROUP, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; @@ -273,7 +273,7 @@ export namespace WorkspaceEdit { const result: modes.WorkspaceEdit = { edits: [] }; - for (const entry of value.entries()) { + for (const entry of (value as types.WorkspaceEdit).allEntries()) { const [uri, uriOrEdits] = entry; if (Array.isArray(uriOrEdits)) { // text edits @@ -294,11 +294,11 @@ export namespace WorkspaceEdit { URI.revive((edit).resource), (edit).edits.map(TextEdit.to) ); - // } else { - // result.renameResource( - // URI.revive((edit).oldUri), - // URI.revive((edit).newUri) - // ); + } else { + result.renameFile( + URI.revive((edit).oldUri), + URI.revive((edit).newUri) + ); } } return result; diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index e06d371676eed320b701286574a9b4522d2d46ee..1b7face6d5bbf1203353f19dc5aac931d835aa87 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -499,17 +499,17 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { private _resourceEdits: { seq: number, from: URI, to: URI }[] = []; private _textEdits = new Map(); - // createResource(uri: vscode.Uri): void { - // this.renameResource(undefined, uri); - // } + createFile(uri: vscode.Uri): void { + this.renameFile(undefined, uri); + } - // deleteResource(uri: vscode.Uri): void { - // this.renameResource(uri, undefined); - // } + deleteFile(uri: vscode.Uri): void { + this.renameFile(uri, undefined); + } - // renameResource(from: vscode.Uri, to: vscode.Uri): void { - // this._resourceEdits.push({ seq: this._seqPool++, from, to }); - // } + renameFile(from: vscode.Uri, to: vscode.Uri): void { + this._resourceEdits.push({ seq: this._seqPool++, from, to }); + } // resourceEdits(): [vscode.Uri, vscode.Uri][] { // return this._resourceEdits.map(({ from, to }) => (<[vscode.Uri, vscode.Uri]>[from, to])); @@ -566,20 +566,19 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { } allEntries(): ([URI, TextEdit[]] | [URI, URI])[] { - return this.entries(); - // // use the 'seq' the we have assigned when inserting - // // the operation and use that order in the resulting - // // array - // const res: ([URI, TextEdit[]] | [URI, URI])[] = []; - // this._textEdits.forEach(value => { - // const { seq, uri, edits } = value; - // res[seq] = [uri, edits]; - // }); - // this._resourceEdits.forEach(value => { - // const { seq, from, to } = value; - // res[seq] = [from, to]; - // }); - // return res; + // use the 'seq' the we have assigned when inserting + // the operation and use that order in the resulting + // array + const res: ([URI, TextEdit[]] | [URI, URI])[] = []; + this._textEdits.forEach(value => { + const { seq, uri, edits } = value; + res[seq] = [uri, edits]; + }); + this._resourceEdits.forEach(value => { + const { seq, from, to } = value; + res[seq] = [from, to]; + }); + return res; } get size(): number {