Skip to content

Commit aefdf5b

Browse files
authored
Preserve original markdown string options when doing progressive render (#211505)
Fix #1163
1 parent dbfe999 commit aefdf5b

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/vs/workbench/contrib/chat/browser/chatListRenderer.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,7 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
619619
renderedWordCount: wordCountResult.actualWordCount,
620620
lastRenderTime: Date.now(),
621621
isFullyRendered: wordCountResult.isFullString,
622+
originalMarkdown: part.content,
622623
};
623624
wordCountResults[index] = wordCountResult;
624625
}
@@ -635,6 +636,7 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
635636
renderedWordCount: wordCountResult.actualWordCount,
636637
lastRenderTime: Date.now(),
637638
isFullyRendered: wordCountResult.isFullString,
639+
originalMarkdown: part.content,
638640
};
639641
wordCountResults[index] = wordCountResult;
640642
} else if (!renderedPart.isFullyRendered && !wordCountResult) {
@@ -692,7 +694,10 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
692694
// Avoid doing progressive rendering for multiple markdown parts simultaneously
693695
else if (!hasRenderedOneMarkdownBlock && wordCountResults[index]) {
694696
const { value } = wordCountResults[index];
695-
result = this.renderMarkdown(new MarkdownString(value), element, templateData, true);
697+
const part = partsToRender[index];
698+
const originalMarkdown = 'originalMarkdown' in part ? part.originalMarkdown : undefined;
699+
const markdownToRender = new MarkdownString(value, originalMarkdown);
700+
result = this.renderMarkdown(markdownToRender, element, templateData, true);
696701
hasRenderedOneMarkdownBlock = true;
697702
}
698703

src/vs/workbench/contrib/chat/common/chatViewModel.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { IParsedChatRequest } from 'vs/workbench/contrib/chat/common/chatParserT
1717
import { IChatCommandButton, IChatContentReference, IChatFollowup, IChatProgressMessage, IChatResponseErrorDetails, IChatResponseProgressFileTreeData, IChatUsedContext, InteractiveSessionVoteDirection } from 'vs/workbench/contrib/chat/common/chatService';
1818
import { countWords } from 'vs/workbench/contrib/chat/common/chatWordCounter';
1919
import { CodeBlockModelCollection } from './codeBlockModelCollection';
20+
import { IMarkdownString } from 'vs/base/common/htmlContent';
2021

2122
export function isRequestVM(item: unknown): item is IChatRequestViewModel {
2223
return !!item && typeof item === 'object' && 'message' in item;
@@ -74,6 +75,7 @@ export interface IChatResponseMarkdownRenderData {
7475
renderedWordCount: number;
7576
lastRenderTime: number;
7677
isFullyRendered: boolean;
78+
originalMarkdown: IMarkdownString;
7779
}
7880

7981
export interface IChatProgressMessageRenderData {

0 commit comments

Comments
 (0)