提交 9ba606df 编写于 作者: J Johannes Rieken

add recrusive-flag to deleteFile-function, #52941

上级 39b91f6c
...@@ -906,7 +906,7 @@ export function isResourceTextEdit(thing: any): thing is ResourceTextEdit { ...@@ -906,7 +906,7 @@ export function isResourceTextEdit(thing: any): thing is ResourceTextEdit {
export interface ResourceFileEdit { export interface ResourceFileEdit {
oldUri: URI; oldUri: URI;
newUri: URI; newUri: URI;
options: { overwrite?: boolean, ignoreIfExists?: boolean }; options: { overwrite?: boolean, ignoreIfExists?: boolean, recursive?: boolean };
} }
export interface ResourceTextEdit { export interface ResourceTextEdit {
......
...@@ -5191,6 +5191,7 @@ declare namespace monaco.languages { ...@@ -5191,6 +5191,7 @@ declare namespace monaco.languages {
options: { options: {
overwrite?: boolean; overwrite?: boolean;
ignoreIfExists?: boolean; ignoreIfExists?: boolean;
recursive?: boolean;
}; };
} }
......
...@@ -817,7 +817,7 @@ declare module 'vscode' { ...@@ -817,7 +817,7 @@ declare module 'vscode' {
* *
* @param uri The uri of the file that is to be deleted. * @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. * Rename a file or folder.
......
...@@ -29,7 +29,7 @@ import { IConfig, IAdapterExecutable, ITerminalSettings } from 'vs/workbench/par ...@@ -29,7 +29,7 @@ import { IConfig, IAdapterExecutable, ITerminalSettings } from 'vs/workbench/par
import { IQuickPickItem, IPickOptions, IQuickInputButton } from 'vs/platform/quickinput/common/quickInput'; import { IQuickPickItem, IPickOptions, IQuickInputButton } from 'vs/platform/quickinput/common/quickInput';
import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles'; import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles';
import { TextEditorCursorStyle } from 'vs/editor/common/config/editorOptions'; 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'; import { TaskSet } from 'vs/workbench/parts/tasks/common/tasks';
...@@ -774,7 +774,7 @@ export interface WorkspaceSymbolsDto extends IdObject { ...@@ -774,7 +774,7 @@ export interface WorkspaceSymbolsDto extends IdObject {
export interface ResourceFileEditDto { export interface ResourceFileEditDto {
oldUri: UriComponents; oldUri: UriComponents;
newUri: UriComponents; newUri: UriComponents;
options: { overwrite?: boolean, ignoreIfExists?: boolean }; options: IFileOperationOptions;
} }
export interface ResourceTextEditDto { export interface ResourceTextEditDto {
......
...@@ -495,11 +495,17 @@ export class TextEdit { ...@@ -495,11 +495,17 @@ export class TextEdit {
} }
export interface IFileOperationOptions {
overwrite?: boolean;
ignoreIfExists?: boolean;
recursive?: boolean;
}
export interface IFileOperation { export interface IFileOperation {
_type: 1; _type: 1;
from: URI; from: URI;
to: URI; to: URI;
options?: { overwrite?: boolean, ignoreIfExists?: boolean; }; options?: IFileOperationOptions;
} }
export interface IFileTextEdit { export interface IFileTextEdit {
...@@ -520,8 +526,8 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { ...@@ -520,8 +526,8 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit {
this._edits.push({ _type: 1, from: undefined, to: uri, options }); this._edits.push({ _type: 1, from: undefined, to: uri, options });
} }
deleteFile(uri: vscode.Uri): void { deleteFile(uri: vscode.Uri, options?: { recursive?: boolean }): void {
this._edits.push({ _type: 1, from: uri, to: undefined }); this._edits.push({ _type: 1, from: uri, to: undefined, options });
} }
replace(uri: URI, range: Range, newText: string): void { replace(uri: URI, range: Range, newText: string): void {
...@@ -593,8 +599,8 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { ...@@ -593,8 +599,8 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit {
return values(textEdits); return values(textEdits);
} }
_allEntries(): ([URI, TextEdit[]] | [URI, URI, { overwrite?: boolean, ignoreIfExists?: boolean }])[] { _allEntries(): ([URI, TextEdit[]] | [URI, URI, IFileOperationOptions])[] {
let res: ([URI, TextEdit[]] | [URI, URI, { overwrite?: boolean, ignoreIfExists?: boolean }])[] = []; let res: ([URI, TextEdit[]] | [URI, URI, IFileOperationOptions])[] = [];
for (let edit of this._edits) { for (let edit of this._edits) {
if (edit._type === 1) { if (edit._type === 1) {
res.push([edit.from, edit.to, edit.options]); res.push([edit.from, edit.to, edit.options]);
......
...@@ -339,6 +339,7 @@ export class BulkEdit { ...@@ -339,6 +339,7 @@ export class BulkEdit {
if (edit.newUri && edit.oldUri) { if (edit.newUri && edit.oldUri) {
await this._textFileService.move(edit.oldUri, edit.newUri, overwrite); await this._textFileService.move(edit.oldUri, edit.newUri, overwrite);
} else if (!edit.newUri && edit.oldUri) { } else if (!edit.newUri && edit.oldUri) {
// let recrusive = edit.options && edit.options.recursive;
await this._textFileService.delete(edit.oldUri, true); await this._textFileService.delete(edit.oldUri, true);
} else if (edit.newUri && !edit.oldUri) { } else if (edit.newUri && !edit.oldUri) {
let ignoreIfExists = edit.options && edit.options.ignoreIfExists; let ignoreIfExists = edit.options && edit.options.ignoreIfExists;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册