diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 5a74bd1613eb1bb53ea63b61ab0e0d482b2f08e9..fb1015bcd93c018bf2effb159172a98c55359b59 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 529e1fe793aeca2a59177541a8d053e2ebe25902..ecdeff7514527bf8792722aa95be429f75ca3a48 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 96036bd6ad451b3aa913b000634815854e09e05a..a642aa703364ccca554a72098261d3aa29f3b1f7 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 cf72ca8e11c643826abf4cd570d4e69c528c2e92..5bfc41397e31da6e331d5915edf30729455d90d2 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)