From c2a3e85d3c60870546a7769333cfe66cfb512a85 Mon Sep 17 00:00:00 2001 From: Marcus Date: Fri, 30 Sep 2022 13:02:16 +0200 Subject: [PATCH 1/3] # Provide correct response to applyEdit() --- src/vs/editor/browser/services/bulkEditService.ts | 1 + src/vs/workbench/api/browser/mainThreadBulkEdits.ts | 2 +- .../workbench/contrib/bulkEdit/browser/bulkEditService.ts | 8 ++++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/vs/editor/browser/services/bulkEditService.ts b/src/vs/editor/browser/services/bulkEditService.ts index 12d1417489a2a..4f06c9ca68b4d 100644 --- a/src/vs/editor/browser/services/bulkEditService.ts +++ b/src/vs/editor/browser/services/bulkEditService.ts @@ -108,6 +108,7 @@ export interface IBulkEditOptions { export interface IBulkEditResult { ariaSummary: string; + isApplied: boolean; } export type IBulkEditPreviewHandler = (edits: ResourceEdit[], options?: IBulkEditOptions) => Promise; diff --git a/src/vs/workbench/api/browser/mainThreadBulkEdits.ts b/src/vs/workbench/api/browser/mainThreadBulkEdits.ts index dabd351f2d820..0c59eb78b5a8c 100644 --- a/src/vs/workbench/api/browser/mainThreadBulkEdits.ts +++ b/src/vs/workbench/api/browser/mainThreadBulkEdits.ts @@ -27,7 +27,7 @@ export class MainThreadBulkEdits implements MainThreadBulkEditsShape { $tryApplyWorkspaceEdit(dto: IWorkspaceEditDto, undoRedoGroupId?: number, isRefactoring?: boolean): Promise { const edits = reviveWorkspaceEditDto(dto, this._uriIdentService); - return this._bulkEditService.apply(edits, { undoRedoGroupId, respectAutoSaveConfig: isRefactoring }).then(() => true, err => { + return this._bulkEditService.apply(edits, { undoRedoGroupId, respectAutoSaveConfig: isRefactoring }).then((res) => res.isApplied, err => { this._logService.warn(`IGNORING workspace edit: ${err}`); return false; }); diff --git a/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts b/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts index ae0212db0c5eb..9181c5a6dcb91 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts @@ -88,6 +88,10 @@ class BulkEdit { } } + isApplied(): boolean { + return this._edits.length > 0; + } + async perform(): Promise { if (this._edits.length === 0) { @@ -184,7 +188,7 @@ export class BulkEditService implements IBulkEditService { let edits = liftEdits(Array.isArray(editsIn) ? editsIn : editsIn.edits); if (edits.length === 0) { - return { ariaSummary: localize('nothing', "Made no edits") }; + return { ariaSummary: localize('nothing', "Made no edits"), isApplied: false }; } if (this._previewHandler && (options?.showPreview || edits.some(value => value.metadata?.needsConfirmation))) { @@ -248,7 +252,7 @@ export class BulkEditService implements IBulkEditService { await this._saveAll(resources); } - return { ariaSummary: bulkEdit.ariaMessage() }; + return { ariaSummary: bulkEdit.ariaMessage(), isApplied: bulkEdit.isApplied() }; } catch (err) { // console.log('apply FAILED'); // console.log(err); From 2fbc0c6394cfe17995f2efbd0054802e9b706fb8 Mon Sep 17 00:00:00 2001 From: Marcus Date: Fri, 30 Sep 2022 14:16:29 +0200 Subject: [PATCH 2/3] # add standole service isApplied --- src/vs/editor/standalone/browser/standaloneServices.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/standalone/browser/standaloneServices.ts b/src/vs/editor/standalone/browser/standaloneServices.ts index c25434b6c38e4..e92f0bac98c6c 100644 --- a/src/vs/editor/standalone/browser/standaloneServices.ts +++ b/src/vs/editor/standalone/browser/standaloneServices.ts @@ -817,7 +817,8 @@ class StandaloneBulkEditService implements IBulkEditService { } return { - ariaSummary: strings.format(StandaloneServicesNLS.bulkEditServiceSummary, totalEdits, totalFiles) + ariaSummary: strings.format(StandaloneServicesNLS.bulkEditServiceSummary, totalEdits, totalFiles), + isApplied: totalEdits > 0 }; } } From d70a688a39589ecea2ecb74b11a3c68001e2ffcf Mon Sep 17 00:00:00 2001 From: Marcus Date: Tue, 4 Oct 2022 14:00:53 +0200 Subject: [PATCH 3/3] # simplify response --- .../workbench/contrib/bulkEdit/browser/bulkEditService.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts b/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts index 9181c5a6dcb91..34d4848bd1298 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.ts @@ -88,10 +88,6 @@ class BulkEdit { } } - isApplied(): boolean { - return this._edits.length > 0; - } - async perform(): Promise { if (this._edits.length === 0) { @@ -252,7 +248,7 @@ export class BulkEditService implements IBulkEditService { await this._saveAll(resources); } - return { ariaSummary: bulkEdit.ariaMessage(), isApplied: bulkEdit.isApplied() }; + return { ariaSummary: bulkEdit.ariaMessage(), isApplied: edits.length > 0 }; } catch (err) { // console.log('apply FAILED'); // console.log(err);