diff --git a/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.ts b/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.ts index 629cbc061f5..85d997a3c35 100644 --- a/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.ts +++ b/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.ts @@ -251,12 +251,20 @@ abstract class AcceptRejectHunkAction extends ChatEditingEditorAction { ); } - override async runChatEditingCommand(_accessor: ServicesAccessor, _session: IChatEditingSession, _entry: IModifiedFileEntry, ctrl: IModifiedFileEntryEditorIntegration, ...args: any[]): Promise { + override async runChatEditingCommand(accessor: ServicesAccessor, session: IChatEditingSession, entry: IModifiedFileEntry, ctrl: IModifiedFileEntryEditorIntegration, ...args: any[]): Promise { + + const instaService = accessor.get(IInstantiationService); + if (this._accept) { await ctrl.acceptNearestChange(args[0]); } else { await ctrl.rejectNearestChange(args[0]); } + + if (entry.changesCount.get() === 0) { + // no more changes, move to next file + await instaService.invokeFunction(openNextOrPreviousChange, session, entry, true); + } } }