diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 31e7c8b48da..d5e6aa10124 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; + skipTrashBin?: boolean; maxSize?: number; } diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 1fffc80353a..6d61191086b 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -6269,6 +6269,7 @@ declare namespace monaco.languages { recursive?: boolean; copy?: boolean; folder?: 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 47cfebcb1bf..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'); + 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 ae951190e2b..bc7fb098071 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, folder: e.isDirectory })); - // TODO@Isidor respect the useTrash parameter + 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)