Skip to content

Commit 6bb118a

Browse files
authored
only check true edit progress chunks against the live flag, preview must diff against the right, ad-hoc model (microsoft#196561)
fixes microsoft#196047
1 parent f21392b commit 6bb118a

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/vs/workbench/api/common/extHostInlineChat.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ export class ExtHostInteractiveEditor implements ExtHostInlineChatShape {
156156
let done = false;
157157
const progress: vscode.Progress<vscode.InteractiveEditorProgressItem> = {
158158
report: async value => {
159-
if (!request.live) {
159+
if (!request.live && value.edits?.length) {
160160
throw new Error('Progress reporting is only supported for live sessions');
161161
}
162162
if (done || token.isCancellationRequested) {

src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -667,19 +667,20 @@ export class InlineChatWidget {
667667

668668
async showEditsPreview(textModel0: ITextModel, textModelN: ITextModel, allEdits: ISingleEditOperation[][]) {
669669

670-
const diff = await this._editorWorkerService.computeDiff(textModel0.uri, textModelN.uri, { ignoreTrimWhitespace: false, maxComputationTimeMs: 5000, computeMoves: false }, 'advanced');
671-
if (!diff || diff.changes.length === 0) {
672-
this.hideEditsPreview();
673-
return;
674-
}
675-
676670
this._elements.previewDiff.classList.remove('hidden');
677671

678672
const languageSelection: ILanguageSelection = { languageId: textModel0.getLanguageId(), onDidChange: Event.None };
679673
const modified = this._modelService.createModel(createTextBufferFactoryFromSnapshot(textModel0.createSnapshot()), languageSelection, undefined, true);
680674
for (const edits of allEdits) {
681675
modified.applyEdits(edits, false);
682676
}
677+
678+
const diff = await this._editorWorkerService.computeDiff(textModel0.uri, modified.uri, { ignoreTrimWhitespace: false, maxComputationTimeMs: 5000, computeMoves: false }, 'advanced');
679+
if (!diff || diff.changes.length === 0) {
680+
this.hideEditsPreview();
681+
return;
682+
}
683+
683684
this._previewDiffEditor.value.setModel({ original: textModel0, modified });
684685

685686
// joined ranges

0 commit comments

Comments
 (0)