From d84b5eb2da266c608c7d94e239e6b23ae0d8ed03 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 20 Nov 2020 10:36:50 +0100 Subject: [PATCH 1/3] bulkFileEdits: do not use file trash flag --- src/vs/editor/common/modes.ts | 1 + src/vs/monaco.d.ts | 1 + src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts | 2 +- src/vs/workbench/contrib/files/browser/fileActions.ts | 3 +-- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 5a74bd1613e..fb1015bcd93 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -1387,6 +1387,7 @@ export interface WorkspaceFileEditOptions { recursive?: boolean; copy?: boolean; folder?: boolean; + doNotUseTrash?: boolean; } export interface WorkspaceFileEdit { diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 529e1fe793a..ecdeff75145 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -6262,6 +6262,7 @@ declare namespace monaco.languages { recursive?: boolean; copy?: boolean; folder?: boolean; + doNotUseTrash?: boolean; } export interface WorkspaceFileEdit { diff --git a/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts b/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts index 96036bd6ad4..a642aa70336 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts @@ -172,7 +172,7 @@ class DeleteOperation implements IFileOperation { } } - const useTrash = this._fileService.hasCapability(this.oldUri, FileSystemProviderCapabilities.Trash) && this._configurationService.getValue('files.enableTrash'); + const useTrash = this._fileService.hasCapability(this.oldUri, FileSystemProviderCapabilities.Trash) && this._configurationService.getValue('files.enableTrash') && !this.options.doNotUseTrash; await this._workingCopyFileService.delete([this.oldUri], { useTrash, recursive: this.options.recursive, ...this.undoRedoInfo }); return this._instaService.createInstance(CreateOperation, this.oldUri, this.options, { isUndoing: true }, contents); } diff --git a/src/vs/workbench/contrib/files/browser/fileActions.ts b/src/vs/workbench/contrib/files/browser/fileActions.ts index cf72ca8e11c..5bfc41397e3 100644 --- a/src/vs/workbench/contrib/files/browser/fileActions.ts +++ b/src/vs/workbench/contrib/files/browser/fileActions.ts @@ -226,8 +226,7 @@ async function deleteFiles(explorerService: IExplorerService, bulkEditService: I // Call function try { - const resourceFileEdits = distinctElements.map(e => new ResourceFileEdit(e.resource, undefined, { recursive: true })); - // TODO@Isidor respect the useTrash parameter + const resourceFileEdits = distinctElements.map(e => new ResourceFileEdit(e.resource, undefined, { recursive: true, doNotUseTrash: !useTrash })); await bulkEditService.apply(resourceFileEdits, { undoRedoSource: explorerService.undoRedoSource, label: distinctElements.length > 1 ? nls.localize('deleteBulkEdit', "Delete {0} files", distinctElements.length) : nls.localize('deleteFileBulkEdit', "Delete {0}", distinctElements[0].name) From d2365da65c42972a5627e6cb7e54126a1a4f6cf9 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 24 Nov 2020 10:15:37 +0100 Subject: [PATCH 2/3] rename doNotUseTrash to skipTrashBin --- src/vs/editor/common/modes.ts | 2 +- src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts | 4 ++-- src/vs/workbench/contrib/files/browser/fileActions.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 30d7fc55691..d5e6aa10124 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -1387,7 +1387,7 @@ export interface WorkspaceFileEditOptions { recursive?: boolean; copy?: boolean; folder?: boolean; - doNotUseTrash?: boolean; + skipTrashBin?: boolean; maxSize?: number; } diff --git a/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts b/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts index e1bef23b490..c1fbb07562e 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts @@ -166,13 +166,13 @@ class DeleteOperation implements IFileOperation { let fileContent: IFileContent | undefined; if (!this._undoesCreateOperation && !this.options.folder) { try { - fileContent = (await this._fileService.readFile(this.oldUri)); + fileContent = await this._fileService.readFile(this.oldUri); } catch (err) { this._logService.critical(err); } } - const useTrash = this._fileService.hasCapability(this.oldUri, FileSystemProviderCapabilities.Trash) && this._configurationService.getValue('files.enableTrash') && !this.options.doNotUseTrash; + const useTrash = !this.options.skipTrashBin && this._fileService.hasCapability(this.oldUri, FileSystemProviderCapabilities.Trash) && this._configurationService.getValue('files.enableTrash'); await this._workingCopyFileService.delete([this.oldUri], { useTrash, recursive: this.options.recursive, ...this.undoRedoInfo }); if (typeof this.options.maxSize === 'number' && fileContent && (fileContent?.size > this.options.maxSize)) { diff --git a/src/vs/workbench/contrib/files/browser/fileActions.ts b/src/vs/workbench/contrib/files/browser/fileActions.ts index c6b285a6e2d..bc7fb098071 100644 --- a/src/vs/workbench/contrib/files/browser/fileActions.ts +++ b/src/vs/workbench/contrib/files/browser/fileActions.ts @@ -226,7 +226,7 @@ async function deleteFiles(explorerService: IExplorerService, bulkEditService: I // Call function try { - const resourceFileEdits = distinctElements.map(e => new ResourceFileEdit(e.resource, undefined, { recursive: true, folder: e.isDirectory, doNotUseTrash: !useTrash })); + const resourceFileEdits = distinctElements.map(e => new ResourceFileEdit(e.resource, undefined, { recursive: true, folder: e.isDirectory, skipTrashBin: !useTrash })); await bulkEditService.apply(resourceFileEdits, { undoRedoSource: explorerService.undoRedoSource, label: distinctElements.length > 1 ? nls.localize('deleteBulkEdit', "Delete {0} files", distinctElements.length) : nls.localize('deleteFileBulkEdit', "Delete {0}", distinctElements[0].name) From b5861b0330e2079c6fd7a094a439fe840a68bb64 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 24 Nov 2020 13:20:35 +0100 Subject: [PATCH 3/3] update the monaco.d.ts --- src/vs/monaco.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index c57c8a5198c..6d61191086b 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -6269,7 +6269,7 @@ declare namespace monaco.languages { recursive?: boolean; copy?: boolean; folder?: boolean; - doNotUseTrash?: boolean; + skipTrashBin?: boolean; maxSize?: number; }