diff --git a/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.ts b/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.ts index 48756921c1d9eb65c7bcd52954ec9c6573ad5707..473166ff599a12e63b1152f6f61969b2f82b50ea 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.ts @@ -305,19 +305,19 @@ class CodeActionOnSaveParticipant implements ITextFileSaveParticipant { private async applyOnSaveActions(model: ITextModel, codeActionsOnSave: readonly CodeActionKind[], excludes: readonly CodeActionKind[], progress: IProgress, token: CancellationToken): Promise { const getActionProgress = new class implements IProgress { - private _names: string[] = []; + private _names = new Set(); private _report(): void { progress.report({ message: localize( 'codeaction.get', "Getting code actions from '{0}' ([configure](command:workbench.action.openSettings?%5B%22editor.codeActionsOnSave%22%5D)).", - this._names.map(name => `'${name}'`).join(', ') + [...this._names].map(name => `'${name}'`).join(', ') ) }); } report(provider: CodeActionProvider) { - if (provider.displayName) { - this._names.push(provider.displayName); + if (provider.displayName && !this._names.has(provider.displayName)) { + this._names.add(provider.displayName); this._report(); } }