From 2240dcfdcd6f925817abaa5d73d8da63360d847e Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Thu, 8 Jan 2026 17:14:52 +0000 Subject: [PATCH] Chat - adding multi-diff part should respect the `chat.checkpoints.showFileChanges` setting (#286577) --- .../contrib/chat/common/model/chatModel.ts | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/vs/workbench/contrib/chat/common/model/chatModel.ts b/src/vs/workbench/contrib/chat/common/model/chatModel.ts index a37c0e138ab..9ba81947a09 100644 --- a/src/vs/workbench/contrib/chat/common/model/chatModel.ts +++ b/src/vs/workbench/contrib/chat/common/model/chatModel.ts @@ -26,6 +26,7 @@ import { ISelection } from '../../../../../editor/common/core/selection.js'; import { TextEdit } from '../../../../../editor/common/languages.js'; import { EditSuggestionId } from '../../../../../editor/common/textModelEditSource.js'; import { localize } from '../../../../../nls.js'; +import { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js'; import { ILogService } from '../../../../../platform/log/common/log.js'; import { CellUri, ICellEditOperation } from '../../../notebook/common/notebookCommon.js'; import { ChatRequestToolReferenceEntry, IChatRequestVariableEntry } from '../attachments/chatVariableEntries.js'; @@ -1746,6 +1747,7 @@ export class ChatModel extends Disposable implements IChatModel { constructor( initialData: ISerializableChatData | IExportableChatData | undefined, initialModelProps: { initialLocation: ChatAgentLocation; canUseTools: boolean; inputState?: ISerializableChatModelInputState; resource?: URI; sessionId?: string; disableBackgroundKeepAlive?: boolean }, + @IConfigurationService private readonly configurationService: IConfigurationService, @ILogService private readonly logService: ILogService, @IChatAgentService private readonly chatAgentService: IChatAgentService, @IChatEditingService private readonly chatEditingService: IChatEditingService, @@ -1798,16 +1800,21 @@ export class ChatModel extends Disposable implements IChatModel { } reader.store.add(request.response.onDidChange(async ev => { - if (ev.reason === 'completedRequest' && this._editingSession) { - if (request === this._requests.at(-1) - && request.session.sessionResource.scheme !== Schemas.vscodeLocalChatSession - && this._editingSession.hasEditsInRequest(request.id) - ) { - const diffs = this._editingSession.getDiffsForFilesInRequest(request.id); - request.response?.updateContent(editEntriesToMultiDiffData(diffs), true); - } - this._onDidChange.fire({ kind: 'completedRequest', request }); + if (!this._editingSession || ev.reason !== 'completedRequest') { + return; } + + if ( + request === this._requests.at(-1) && + request.session.sessionResource.scheme !== Schemas.vscodeLocalChatSession && + this.configurationService.getValue('chat.checkpoints.showFileChanges') === true && + this._editingSession.hasEditsInRequest(request.id) + ) { + const diffs = this._editingSession.getDiffsForFilesInRequest(request.id); + request.response?.updateContent(editEntriesToMultiDiffData(diffs), true); + } + + this._onDidChange.fire({ kind: 'completedRequest', request }); })); }));