Skip to content

Commit bfe6dcb

Browse files
authored
Remove block cursor character from chat (microsoft#184936)
* Remove block cursor character from chat * Remove comment
1 parent c9c3321 commit bfe6dcb

File tree

1 file changed

+3
-21
lines changed

1 file changed

+3
-21
lines changed

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

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ export interface IChatRendererDelegate {
8888
}
8989

9090
export class ChatListItemRenderer extends Disposable implements ITreeRenderer<ChatTreeItem, FuzzyScore, IChatListItemTemplate> {
91-
static readonly cursorCharacter = '\u258c';
9291
static readonly ID = 'item';
9392

9493
private readonly codeBlocksByResponseId = new Map<string, IChatCodeBlockInfo[]>();
@@ -368,12 +367,7 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
368367
isFullyRendered: renderValue.isFullString
369368
};
370369

371-
// Don't add the cursor if it will go after a codeblock, since this will always cause layout shifting
372-
// when the codeblock is the last thing in the response, and that happens often.
373-
const plusCursor = renderValue.value.match(/```\s*$/) ?
374-
renderValue.value :
375-
renderValue.value + ` ${ChatListItemRenderer.cursorCharacter}`;
376-
const result = this.renderMarkdown(new MarkdownString(plusCursor), element, disposables, templateData, true);
370+
const result = this.renderMarkdown(new MarkdownString(renderValue.value), element, disposables, templateData, true);
377371
// Doing the progressive render
378372
dom.clearNode(templateData.value);
379373
templateData.value.appendChild(result.element);
@@ -754,28 +748,16 @@ class CodeBlockPart extends Disposable implements IChatResultCodeBlockPart {
754748
}
755749

756750
private setText(newText: string): void {
757-
let currentText = this.textModel.getLinesContent().join('\n');
751+
const currentText = this.textModel.getLinesContent().join('\n');
758752
if (newText === currentText) {
759753
return;
760754
}
761755

762-
let removedChars = 0;
763-
if (currentText.endsWith(` ${ChatListItemRenderer.cursorCharacter}`)) {
764-
removedChars = 2;
765-
} else if (currentText.endsWith(ChatListItemRenderer.cursorCharacter)) {
766-
removedChars = 1;
767-
}
768-
769-
if (removedChars > 0) {
770-
currentText = currentText.slice(0, currentText.length - removedChars);
771-
}
772-
773756
if (newText.startsWith(currentText)) {
774757
const text = newText.slice(currentText.length);
775758
const lastLine = this.textModel.getLineCount();
776759
const lastCol = this.textModel.getLineMaxColumn(lastLine);
777-
const insertAtCol = lastCol - removedChars;
778-
this.textModel.applyEdits([{ range: new Range(lastLine, insertAtCol, lastLine, lastCol), text }]);
760+
this.textModel.applyEdits([{ range: new Range(lastLine, lastCol, lastLine, lastCol), text }]);
779761
} else {
780762
// console.log(`Failed to optimize setText`);
781763
this.textModel.setValue(newText);

0 commit comments

Comments
 (0)