diff --git a/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.ts b/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.ts index a547adb37a649..83707965b08e1 100644 --- a/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.ts +++ b/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.ts @@ -79,7 +79,6 @@ export class ChatEditingModifiedNotebookEntry extends AbstractChatEditingModifie private readonly cellEntryMap = new ResourceMap(); private modifiedToOriginalCell = new ResourceMap(); private readonly _cellsDiffInfo = observableValue('diffInfo', []); - private readonly _maxModifiedLineNumbers = observableValue('changedMaxLineNumber', []); get cellsDiffInfo(): IObservable { return this._cellsDiffInfo; @@ -182,7 +181,6 @@ export class ChatEditingModifiedNotebookEntry extends AbstractChatEditingModifie this.originalModel = this._register(originalResourceRef).object.notebook; this.originalURI = this.originalModel.uri; this.initialContent = initialContent; - this._maxModifiedLineNumbers.set(this.modifiedModel.cells.map(() => 0), undefined); this.initializeModelsFromDiff(); this._register(this.modifiedModel.onDidChangeContent(this.mirrorNotebookEdits, this)); } @@ -514,7 +512,8 @@ export class ChatEditingModifiedNotebookEntry extends AbstractChatEditingModifie if (!isLastEdits) { this._stateObs.set(WorkingSetEntryState.Modified, tx); this._isCurrentlyBeingModifiedByObs.set(responseModel, tx); - this._rewriteRatioObs.set(Math.min(1, calculateNotebookRewriteRatio(this._cellsDiffInfo.get(), this.originalModel, this.modifiedModel)), tx); + const newRewriteRation = Math.max(this._rewriteRatioObs.get(), calculateNotebookRewriteRatio(this._cellsDiffInfo.get(), this.originalModel, this.modifiedModel)); + this._rewriteRatioObs.set(Math.min(1, newRewriteRation), tx); } else { finishPreviousCells(); @@ -891,13 +890,9 @@ export class ChatEditingModifiedNotebookEntry extends AbstractChatEditingModifie }; } diffs.splice(entryIndex, 1, { ...entry }); - const maxModifiedLineNumber = cellEntry.maxModifiedLineNumber.read(r); - const maxModifiedLineNumbers = this._maxModifiedLineNumbers.get().slice(); - maxModifiedLineNumbers[index] = maxModifiedLineNumber; transaction(tx => { this.updateCellDiffInfo(diffs, tx); - this._maxModifiedLineNumbers.set(maxModifiedLineNumbers, tx); }); }));