From 9ba606df0ee5c2a386eac532771ac343a62f1985 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 27 Jun 2018 15:01:33 +0200 Subject: [PATCH] add recrusive-flag to deleteFile-function, #52941 --- src/vs/editor/common/modes.ts | 2 +- src/vs/monaco.d.ts | 1 + src/vs/vscode.proposed.d.ts | 2 +- src/vs/workbench/api/node/extHost.protocol.ts | 4 ++-- src/vs/workbench/api/node/extHostTypes.ts | 16 +++++++++++----- .../bulkEdit/electron-browser/bulkEditService.ts | 1 + 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 7905ccba0f4..94f3bf63ed2 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -906,7 +906,7 @@ export function isResourceTextEdit(thing: any): thing is ResourceTextEdit { export interface ResourceFileEdit { oldUri: URI; newUri: URI; - options: { overwrite?: boolean, ignoreIfExists?: boolean }; + options: { overwrite?: boolean, ignoreIfExists?: boolean, recursive?: boolean }; } export interface ResourceTextEdit { diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 7dcf6436363..41851050fb9 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -5191,6 +5191,7 @@ declare namespace monaco.languages { options: { overwrite?: boolean; ignoreIfExists?: boolean; + recursive?: boolean; }; } diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 3372e7e8e2c..d48d52e96ee 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -817,7 +817,7 @@ declare module 'vscode' { * * @param uri The uri of the file that is to be deleted. */ - deleteFile(uri: Uri): void; + deleteFile(uri: Uri, options?: { recursive?: boolean }): void; /** * Rename a file or folder. diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 6aab73ca6f7..f95d1bbd835 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -29,7 +29,7 @@ import { IConfig, IAdapterExecutable, ITerminalSettings } from 'vs/workbench/par import { IQuickPickItem, IPickOptions, IQuickInputButton } from 'vs/platform/quickinput/common/quickInput'; import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles'; import { TextEditorCursorStyle } from 'vs/editor/common/config/editorOptions'; -import { EndOfLine, TextEditorLineNumbersStyle } from 'vs/workbench/api/node/extHostTypes'; +import { EndOfLine, TextEditorLineNumbersStyle, IFileOperationOptions } from 'vs/workbench/api/node/extHostTypes'; import { TaskSet } from 'vs/workbench/parts/tasks/common/tasks'; @@ -774,7 +774,7 @@ export interface WorkspaceSymbolsDto extends IdObject { export interface ResourceFileEditDto { oldUri: UriComponents; newUri: UriComponents; - options: { overwrite?: boolean, ignoreIfExists?: boolean }; + options: IFileOperationOptions; } export interface ResourceTextEditDto { diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index 677f2a9ccf4..81e6a53db9a 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -495,11 +495,17 @@ export class TextEdit { } +export interface IFileOperationOptions { + overwrite?: boolean; + ignoreIfExists?: boolean; + recursive?: boolean; +} + export interface IFileOperation { _type: 1; from: URI; to: URI; - options?: { overwrite?: boolean, ignoreIfExists?: boolean; }; + options?: IFileOperationOptions; } export interface IFileTextEdit { @@ -520,8 +526,8 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { this._edits.push({ _type: 1, from: undefined, to: uri, options }); } - deleteFile(uri: vscode.Uri): void { - this._edits.push({ _type: 1, from: uri, to: undefined }); + deleteFile(uri: vscode.Uri, options?: { recursive?: boolean }): void { + this._edits.push({ _type: 1, from: uri, to: undefined, options }); } replace(uri: URI, range: Range, newText: string): void { @@ -593,8 +599,8 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { return values(textEdits); } - _allEntries(): ([URI, TextEdit[]] | [URI, URI, { overwrite?: boolean, ignoreIfExists?: boolean }])[] { - let res: ([URI, TextEdit[]] | [URI, URI, { overwrite?: boolean, ignoreIfExists?: boolean }])[] = []; + _allEntries(): ([URI, TextEdit[]] | [URI, URI, IFileOperationOptions])[] { + let res: ([URI, TextEdit[]] | [URI, URI, IFileOperationOptions])[] = []; for (let edit of this._edits) { if (edit._type === 1) { res.push([edit.from, edit.to, edit.options]); diff --git a/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts b/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts index f3f62fdbf02..fcd3687a8c7 100644 --- a/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts +++ b/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts @@ -339,6 +339,7 @@ export class BulkEdit { if (edit.newUri && edit.oldUri) { await this._textFileService.move(edit.oldUri, edit.newUri, overwrite); } else if (!edit.newUri && edit.oldUri) { + // let recrusive = edit.options && edit.options.recursive; await this._textFileService.delete(edit.oldUri, true); } else if (edit.newUri && !edit.oldUri) { let ignoreIfExists = edit.options && edit.options.ignoreIfExists; -- GitLab