diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts index 87ec01ef072556904d98004fa9dfdbd1f2ce8c0a..e720f740945959035a5af7576aead248909b5233 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts @@ -523,42 +523,42 @@ suite('workspace-namespace', () => { }); - test('applyEdit should fail when editing deleted resource', async () => { - const resource = await createRandomFile(); - - const edit = new vscode.WorkspaceEdit(); - edit.deleteResource(resource); - try { - edit.insert(resource, new vscode.Position(0, 0), ''); - assert.fail(false, 'Should disallow edit of deleted resource'); - } catch { - // noop - } - }); - - test('applyEdit should fail when renaming deleted resource', async () => { - const resource = await createRandomFile(); + // test('applyEdit should fail when editing deleted resource', async () => { + // const resource = await createRandomFile(); + + // const edit = new vscode.WorkspaceEdit(); + // edit.deleteResource(resource); + // try { + // edit.insert(resource, new vscode.Position(0, 0), ''); + // assert.fail(false, 'Should disallow edit of deleted resource'); + // } catch { + // // noop + // } + // }); - const edit = new vscode.WorkspaceEdit(); - edit.deleteResource(resource); - try { - edit.renameResource(resource, resource); - assert.fail(false, 'Should disallow rename of deleted resource'); - } catch { - // noop - } - }); + // test('applyEdit should fail when renaming deleted resource', async () => { + // const resource = await createRandomFile(); + + // const edit = new vscode.WorkspaceEdit(); + // edit.deleteResource(resource); + // try { + // edit.renameResource(resource, resource); + // assert.fail(false, 'Should disallow rename of deleted resource'); + // } catch { + // // noop + // } + // }); - test('applyEdit should fail when editing renamed from resource', async () => { - const resource = await createRandomFile(); - const newResource = vscode.Uri.parse(resource.fsPath + '.1'); - const edit = new vscode.WorkspaceEdit(); - edit.renameResource(resource, newResource); - try { - edit.insert(resource, new vscode.Position(0, 0), ''); - assert.fail(false, 'Should disallow editing renamed file'); - } catch { - // noop - } - }); + // test('applyEdit should fail when editing renamed from resource', async () => { + // const resource = await createRandomFile(); + // const newResource = vscode.Uri.parse(resource.fsPath + '.1'); + // const edit = new vscode.WorkspaceEdit(); + // edit.renameResource(resource, newResource); + // try { + // edit.insert(resource, new vscode.Position(0, 0), ''); + // assert.fail(false, 'Should disallow editing renamed file'); + // } catch { + // // noop + // } + // }); }); diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index a1f3e840df6cab5140c361bdb15dedabd932185c..9b027a59cf92182e6b45ae643b19441f2e65dddf 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -2582,46 +2582,6 @@ declare module 'vscode' { * @return A shallow copy of `[Uri, TextEdit[]]`-tuples. */ entries(): [Uri, TextEdit[]][]; - - /** - * Renames a given resource in the workspace. - * - * @param from Uri of current resource. - * @param to Uri of renamed resource. - */ - renameResource(from: Uri, to: Uri): void; - - /** - * Create a new resource in the workspace. - * - * @param uri Uri of resource to create. - */ - createResource(uri: Uri): void; - - /** - * Delete a given resource in the workspace. - * - * @param uri Uri of resource to delete. - */ - deleteResource(uri: Uri): void; - - /** - * Get the resource edits for this workspace edit. - * - * @returns A shallow copy of uri-tuples in which a rename-edit - * is represented as `[from, to]`, a delete-operation as `[from, null]`, - * and a create-operation as `[null, to]`; - */ - resourceEdits(): [Uri, Uri][]; - - /** - * Get all edits, textual changes and file changes. The order is the order - * in which edits have been added to this workspace edits. Textuals edits - * are grouped and the first textual edit for a resource matters. - * - * @returns A shallow copy of all changes. - */ - allEntries(): ([Uri, TextEdit[]] | [Uri, Uri])[]; } /** diff --git a/src/vs/workbench/api/node/extHostTextEditors.ts b/src/vs/workbench/api/node/extHostTextEditors.ts index ea973d68b2262be6b468f4a143fad00177680cde..c64f6c085f1035461c335d39f6e32645020fb1f3 100644 --- a/src/vs/workbench/api/node/extHostTextEditors.ts +++ b/src/vs/workbench/api/node/extHostTextEditors.ts @@ -94,7 +94,7 @@ export class ExtHostEditors implements ExtHostEditorsShape { const dto: WorkspaceEditDto = { edits: [] }; - for (let entry of edit.allEntries()) { + for (let entry of edit.entries()) { let [uri, uriOrEdits] = entry; if (Array.isArray(uriOrEdits)) { let doc = this._extHostDocumentsAndEditors.getDocument(uri.toString()); @@ -103,8 +103,8 @@ export class ExtHostEditors implements ExtHostEditorsShape { modelVersionId: doc && doc.version, edits: uriOrEdits.map(TypeConverters.TextEdit.from) }); - } else { - dto.edits.push({ oldUri: uri, newUri: uriOrEdits }); + // } else { + // dto.edits.push({ oldUri: uri, newUri: uriOrEdits }); } } diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index 366a64d45f480dccc24489b56d17f2247cf3cd4c..428d05ab635318b511e4ac22ba848b1f4f27fe6f 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -20,7 +20,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 { LanguageSelector, LanguageFilter } from 'vs/editor/common/modes/languageSelector'; -import { WorkspaceEditDto, ResourceTextEditDto, ResourceFileEditDto } from 'vs/workbench/api/node/extHost.protocol'; +import { WorkspaceEditDto, ResourceTextEditDto } from 'vs/workbench/api/node/extHost.protocol'; export interface PositionLike { line: number; @@ -232,7 +232,7 @@ export namespace WorkspaceEdit { const result: modes.WorkspaceEdit = { edits: [] }; - for (const entry of value.allEntries()) { + for (const entry of value.entries()) { const [uri, uriOrEdits] = entry; if (Array.isArray(uriOrEdits)) { // text edits @@ -253,11 +253,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.renameResource( + // 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 add62e873992a84b74135ef565647f5256c68571..3c5942a4c459dc3da9a3dd391497dbf610e30ebb 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -499,21 +499,21 @@ 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); - } + // createResource(uri: vscode.Uri): void { + // this.renameResource(undefined, uri); + // } - deleteResource(uri: vscode.Uri): void { - this.renameResource(uri, undefined); - } + // deleteResource(uri: vscode.Uri): void { + // this.renameResource(uri, undefined); + // } - renameResource(from: vscode.Uri, to: vscode.Uri): void { - this._resourceEdits.push({ seq: this._seqPool++, from, to }); - } + // renameResource(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])); - } + // resourceEdits(): [vscode.Uri, vscode.Uri][] { + // return this._resourceEdits.map(({ from, to }) => (<[vscode.Uri, vscode.Uri]>[from, to])); + // } replace(uri: URI, range: Range, newText: string): void { let edit = new TextEdit(range, newText); @@ -566,19 +566,20 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { } allEntries(): ([URI, TextEdit[]] | [URI, URI])[] { - // 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; + 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; } get size(): number { diff --git a/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts b/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts index 478b506e60f323fd23d1ff5c00673c59d44bfdde..3ecde0d0ba28de8404303e1b05e34734c27b72fd 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts @@ -375,39 +375,39 @@ suite('ExtHostTypes', function () { // } // }); - test('WorkspaceEdit - keep order of text and file changes', function () { - - const edit = new types.WorkspaceEdit(); - edit.replace(URI.parse('foo:a'), new types.Range(1, 1, 1, 1), 'foo'); - edit.renameResource(URI.parse('foo:a'), URI.parse('foo:b')); - edit.replace(URI.parse('foo:a'), new types.Range(2, 1, 2, 1), 'bar'); - edit.replace(URI.parse('foo:b'), new types.Range(3, 1, 3, 1), 'bazz'); - - const all = edit.allEntries(); - assert.equal(all.length, 3); - - function isFileChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, URI] { - const [f, s] = thing; - return URI.isUri(f) && URI.isUri(s); - } - - function isTextChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, types.TextEdit[]] { - const [f, s] = thing; - return URI.isUri(f) && Array.isArray(s); - } - - const [first, second, third] = all; - assert.equal(first[0].toString(), 'foo:a'); - assert.ok(!isFileChange(first)); - assert.ok(isTextChange(first) && first[1].length === 2); - - assert.equal(second[0].toString(), 'foo:a'); - assert.ok(isFileChange(second)); - - assert.equal(third[0].toString(), 'foo:b'); - assert.ok(!isFileChange(third)); - assert.ok(isTextChange(third) && third[1].length === 1); - }); + // test('WorkspaceEdit - keep order of text and file changes', function () { + + // const edit = new types.WorkspaceEdit(); + // edit.replace(URI.parse('foo:a'), new types.Range(1, 1, 1, 1), 'foo'); + // edit.renameResource(URI.parse('foo:a'), URI.parse('foo:b')); + // edit.replace(URI.parse('foo:a'), new types.Range(2, 1, 2, 1), 'bar'); + // edit.replace(URI.parse('foo:b'), new types.Range(3, 1, 3, 1), 'bazz'); + + // const all = edit.allEntries(); + // assert.equal(all.length, 3); + + // function isFileChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, URI] { + // const [f, s] = thing; + // return URI.isUri(f) && URI.isUri(s); + // } + + // function isTextChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, types.TextEdit[]] { + // const [f, s] = thing; + // return URI.isUri(f) && Array.isArray(s); + // } + + // const [first, second, third] = all; + // assert.equal(first[0].toString(), 'foo:a'); + // assert.ok(!isFileChange(first)); + // assert.ok(isTextChange(first) && first[1].length === 2); + + // assert.equal(second[0].toString(), 'foo:a'); + // assert.ok(isFileChange(second)); + + // assert.equal(third[0].toString(), 'foo:b'); + // assert.ok(!isFileChange(third)); + // assert.ok(isTextChange(third) && third[1].length === 1); + // }); test('DocumentLink', function () { assert.throws(() => new types.DocumentLink(null, null));