Skip to content

Commit 7e50bfa

Browse files
authored
debt - remove InlineChatWidget#updateChatMessage because it is effectively unused (microsoft#230213)
fyi @meganrogge @Tyriar this update the terminal chat controller. It use of `updateChatMessage` would be a noop since terminal chat uses a real chat model
1 parent 4aeed99 commit 7e50bfa

File tree

2 files changed

+4
-62
lines changed

2 files changed

+4
-62
lines changed

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

+4-59
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { renderLabelWithIcons } from '../../../../base/browser/ui/iconLabel/icon
1010
import { IAction } from '../../../../base/common/actions.js';
1111
import { isNonEmptyArray, tail } from '../../../../base/common/arrays.js';
1212
import { Emitter, Event } from '../../../../base/common/event.js';
13-
import { IMarkdownString, MarkdownString } from '../../../../base/common/htmlContent.js';
13+
import { IMarkdownString } from '../../../../base/common/htmlContent.js';
1414
import { DisposableStore, MutableDisposable, toDisposable } from '../../../../base/common/lifecycle.js';
1515
import { constObservable, derived, ISettableObservable, observableValue } from '../../../../base/common/observable.js';
1616
import './media/inlineChat.css';
@@ -45,10 +45,9 @@ import { MarkUnhelpfulActionId } from '../../chat/browser/actions/chatTitleActio
4545
import { IChatWidgetViewOptions } from '../../chat/browser/chat.js';
4646
import { ChatVoteDownButton } from '../../chat/browser/chatListRenderer.js';
4747
import { ChatWidget, IChatWidgetLocationOptions } from '../../chat/browser/chatWidget.js';
48-
import { ChatAgentLocation } from '../../chat/common/chatAgents.js';
4948
import { chatRequestBackground } from '../../chat/common/chatColors.js';
5049
import { CONTEXT_CHAT_RESPONSE_SUPPORT_ISSUE_REPORTING, CONTEXT_RESPONSE, CONTEXT_RESPONSE_ERROR, CONTEXT_RESPONSE_FILTERED, CONTEXT_RESPONSE_VOTE } from '../../chat/common/chatContextKeys.js';
51-
import { ChatModel, IChatModel } from '../../chat/common/chatModel.js';
50+
import { IChatModel } from '../../chat/common/chatModel.js';
5251
import { ChatAgentVoteDirection, IChatService } from '../../chat/common/chatService.js';
5352
import { isResponseVM } from '../../chat/common/chatViewModel.js';
5453
import { HunkInformation, Session } from './inlineChatSession.js';
@@ -107,7 +106,6 @@ export class InlineChatWidget {
107106

108107
protected readonly _store = new DisposableStore();
109108

110-
private readonly _defaultChatModel: ChatModel;
111109
private readonly _ctxInputEditorFocused: IContextKey<boolean>;
112110
private readonly _ctxResponseFocused: IContextKey<boolean>;
113111

@@ -287,13 +285,6 @@ export class InlineChatWidget {
287285
this.updateStatus('Thank you for your feedback!', { resetAfter: 1250 });
288286
}
289287
}));
290-
291-
// LEGACY - default chat model
292-
// this is only here for as long as we offer updateChatMessage
293-
this._defaultChatModel = this._store.add(this._instantiationService.createInstance(ChatModel, undefined, ChatAgentLocation.Editor));
294-
this._defaultChatModel.startInitialize();
295-
this._defaultChatModel.initialize(undefined);
296-
this.setChatModel(this._defaultChatModel);
297288
}
298289

299290
private _updateAriaLabel(): void {
@@ -452,57 +443,14 @@ export class InlineChatWidget {
452443
}
453444

454445

455-
getChatModel(): IChatModel {
456-
return this._chatWidget.viewModel?.model ?? this._defaultChatModel;
446+
getChatModel(): IChatModel | undefined {
447+
return this._chatWidget.viewModel?.model;
457448
}
458449

459450
setChatModel(chatModel: IChatModel) {
460451
this._chatWidget.setModel(chatModel, { inputValue: undefined });
461452
}
462453

463-
/**
464-
* @deprecated use `setChatModel` instead
465-
*/
466-
updateChatMessage(message: IInlineChatMessage, isIncomplete: true): IInlineChatMessageAppender;
467-
updateChatMessage(message: IInlineChatMessage | undefined): void;
468-
updateChatMessage(message: IInlineChatMessage | undefined, isIncomplete?: boolean, isCodeBlockEditable?: boolean): IInlineChatMessageAppender | undefined;
469-
updateChatMessage(message: IInlineChatMessage | undefined, isIncomplete?: boolean, isCodeBlockEditable?: boolean): IInlineChatMessageAppender | undefined {
470-
471-
if (!this._chatWidget.viewModel || this._chatWidget.viewModel.model !== this._defaultChatModel) {
472-
// this can only be used with the default chat model
473-
return;
474-
}
475-
476-
const model = this._defaultChatModel;
477-
if (!message?.message.value) {
478-
for (const request of model.getRequests()) {
479-
model.removeRequest(request.id);
480-
}
481-
return;
482-
}
483-
484-
const chatRequest = model.addRequest({ parts: [], text: '' }, { variables: [] }, 0);
485-
model.acceptResponseProgress(chatRequest, {
486-
kind: 'markdownContent',
487-
content: message.message
488-
});
489-
490-
if (!isIncomplete) {
491-
model.completeResponse(chatRequest);
492-
return;
493-
}
494-
return {
495-
cancel: () => model.cancelRequest(chatRequest),
496-
complete: () => model.completeResponse(chatRequest),
497-
appendContent: (fragment: string) => {
498-
model.acceptResponseProgress(chatRequest, {
499-
kind: 'markdownContent',
500-
content: new MarkdownString(fragment)
501-
});
502-
}
503-
};
504-
}
505-
506454
updateInfo(message: string): void {
507455
this._elements.infoLabel.classList.toggle('hidden', !message);
508456
const renderedMessage = renderLabelWithIcons(message);
@@ -541,16 +489,13 @@ export class InlineChatWidget {
541489
reset() {
542490
this._chatWidget.setContext(true);
543491
this._chatWidget.saveState();
544-
this.updateChatMessage(undefined);
545492

546493
reset(this._elements.statusLabel);
547494
this._elements.statusLabel.classList.toggle('hidden', true);
548495
this._elements.toolbar1.classList.add('hidden');
549496
this._elements.toolbar2.classList.add('hidden');
550497
this.updateInfo('');
551498

552-
this.chatWidget.setModel(this._defaultChatModel, {});
553-
554499
this._elements.accessibleViewer.classList.toggle('hidden', true);
555500
this._onDidChangeHeight.fire();
556501
}

src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.ts

-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import { TerminalWidgetManager } from '../../../terminal/browser/widgets/widgetM
1717
import { ITerminalProcessManager } from '../../../terminal/common/terminal.js';
1818
import { TerminalChatWidget } from './terminalChatWidget.js';
1919

20-
import { MarkdownString } from '../../../../../base/common/htmlContent.js';
2120
import { ChatModel, IChatResponseModel } from '../../../chat/common/chatModel.js';
2221
import { TerminalChatContextKeys } from './terminalChat.js';
2322
import { IViewsService } from '../../../../services/views/common/viewsService.js';
@@ -244,8 +243,6 @@ export class TerminalChatController extends Disposable implements ITerminalContr
244243
if (response.isComplete) {
245244
this._requestActiveContextKey.set(false);
246245
this._requestActiveContextKey.set(false);
247-
const containsCode = responseContent.includes('```');
248-
this._terminalChatWidget!.value.inlineChatWidget.updateChatMessage({ message: new MarkdownString(responseContent), requestId: response!.requestId }, false, containsCode);
249246
const firstCodeBlock = await this.terminalChatWidget?.inlineChatWidget.getCodeBlockInfo(0);
250247
const secondCodeBlock = await this.terminalChatWidget?.inlineChatWidget.getCodeBlockInfo(1);
251248
this._responseContainsCodeBlockContextKey.set(!!firstCodeBlock);

0 commit comments

Comments
 (0)