Skip to content

Commit ba2ec76

Browse files
committed
More confirmation polish
1 parent b4b07a0 commit ba2ec76

File tree

6 files changed

+44
-12
lines changed

6 files changed

+44
-12
lines changed

src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationWidget.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ abstract class BaseSimpleChatConfirmationWidget extends Disposable {
263263
}
264264
}
265265

266+
/** @deprecated Use ChatConfirmationWidget instead */
266267
export class SimpleChatConfirmationWidget extends BaseSimpleChatConfirmationWidget {
267268
private _renderedMessage: HTMLElement | undefined;
268269

src/vs/workbench/contrib/chat/browser/chatContentParts/media/chatConfirmationWidget.css

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,24 @@
201201
margin: 0 !important;
202202
}
203203
}
204+
205+
p,
206+
.rendered-markdown {
207+
display: inline;
208+
}
209+
}
210+
211+
.chat-confirmation-widget2 .disclaimer {
212+
margin-bottom: 0 !important;
213+
font-style: italic;
214+
opacity: 0.7 !important;
215+
216+
.chat-markdown-part > p {
217+
margin-bottom: 6px !important;
218+
}
204219
}
205220

206-
.chat-confirmation-widget2 .chat-confirmation-widget-message:not(:has(.interactive-result-code-block)) {
221+
.chat-confirmation-widget2 .chat-confirmation-widget-message:not(:has(.chat-confirmation-message-terminal)) {
207222
background: var(--vscode-chat-requestBackground);
208223
border: 1px solid var(--vscode-chat-requestBorder);
209224
padding: 6px 9px 0 9px;
@@ -214,11 +229,11 @@
214229
}
215230
}
216231

217-
.chat-confirmation-widget2.hideButtons .chat-buttons-container {
218-
display: none;
219-
}
220-
221-
.interactive-session .interactive-response .chat-confirmation-widget2 .chat-confirmation-widget-message .interactive-result-code-block {
232+
.interactive-session .interactive-response .chat-confirmation-widget2 .chat-confirmation-message-terminal .interactive-result-code-block {
222233
border-top-left-radius: 0px;
223234
border-top-right-radius: 0px;
224235
}
236+
237+
.chat-confirmation-widget2.hideButtons .chat-buttons-container {
238+
display: none;
239+
}

src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { IChatToolInvocation } from '../../../common/chatService.js';
1616
import { CancelChatActionId } from '../../actions/chatExecuteActions.js';
1717
import { AcceptToolConfirmationActionId } from '../../actions/chatToolActions.js';
1818
import { IChatCodeBlockInfo, IChatWidgetService } from '../../chat.js';
19-
import { SimpleChatConfirmationWidget, IChatConfirmationButton } from '../chatConfirmationWidget.js';
19+
import { IChatConfirmationButton, ChatConfirmationWidget } from '../chatConfirmationWidget.js';
2020
import { IChatContentPartRenderContext } from '../chatContentParts.js';
2121
import { ChatExtensionsContentPart } from '../chatExtensionsContentPart.js';
2222
import { BaseChatToolInvocationSubPart } from './chatToolInvocationSubPart.js';
@@ -73,7 +73,7 @@ export class ExtensionsInstallConfirmationWidgetSubPart extends BaseChatToolInvo
7373
];
7474

7575
const confirmWidget = this._register(instantiationService.createInstance(
76-
SimpleChatConfirmationWidget,
76+
ChatConfirmationWidget,
7777
context.container,
7878
{
7979
title: toolInvocation.confirmationMessages?.title ?? localize('installExtensions', "Install Extensions"),

src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ export class ChatTerminalToolConfirmationSubPart extends BaseChatToolInvocationS
162162
this._register(model.onDidChangeContent(e => {
163163
terminalData.commandLine.userEdited = model.getValue();
164164
}));
165-
const messageElement = $('');
165+
const messageElement = $('.chat-confirmation-message-terminal');
166166
dom.append(messageElement, editor.object.element);
167167
this._register(hoverService.setupDelayedHover(messageElement, {
168168
content: message,

src/vs/workbench/contrib/chat/browser/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { AcceptToolConfirmationActionId } from '../../actions/chatToolActions.js
3030
import { IChatCodeBlockInfo, IChatWidgetService } from '../../chat.js';
3131
import { renderFileWidgets } from '../../chatInlineAnchorWidget.js';
3232
import { ICodeBlockRenderOptions } from '../../codeBlockPart.js';
33-
import { SimpleChatConfirmationWidget, ChatCustomConfirmationWidget, IChatConfirmationButton, ChatConfirmationWidget } from '../chatConfirmationWidget.js';
33+
import { ChatCustomConfirmationWidget, IChatConfirmationButton, ChatConfirmationWidget } from '../chatConfirmationWidget.js';
3434
import { IChatContentPartRenderContext } from '../chatContentParts.js';
3535
import { IChatMarkdownAnchorService } from '../chatMarkdownAnchorService.js';
3636
import { ChatMarkdownContentPart, EditorPool } from '../chatMarkdownContentPart.js';
@@ -105,7 +105,7 @@ export class ToolConfirmationSubPart extends BaseChatToolInvocationSubPart {
105105
tooltip: cancelTooltip
106106
}];
107107

108-
let confirmWidget: SimpleChatConfirmationWidget | ChatCustomConfirmationWidget;
108+
let confirmWidget: ChatCustomConfirmationWidget;
109109
if (typeof message === 'string') {
110110
const tool = languageModelToolsService.getTool(toolInvocation.toolId);
111111
confirmWidget = this._register(this.instantiationService.createInstance(
@@ -333,7 +333,21 @@ export class ToolConfirmationSubPart extends BaseChatToolInvocationSubPart {
333333
}
334334

335335
private _makeMarkdownPart(container: HTMLElement, message: string | IMarkdownString, codeBlockRenderOptions: ICodeBlockRenderOptions) {
336-
const part = this._register(this.instantiationService.createInstance(ChatMarkdownContentPart, { kind: 'markdownContent', content: typeof message === 'string' ? new MarkdownString().appendText(message) : message }, this.context, this.editorPool, false, this.codeBlockStartIndex, this.renderer, undefined, this.currentWidthDelegate(), this.codeBlockModelCollection, { codeBlockRenderOptions }));
336+
const part = this._register(this.instantiationService.createInstance(ChatMarkdownContentPart,
337+
{
338+
kind: 'markdownContent',
339+
content: typeof message === 'string' ? new MarkdownString().appendText(message) : message
340+
},
341+
this.context,
342+
this.editorPool,
343+
false,
344+
this.codeBlockStartIndex,
345+
this.renderer,
346+
undefined,
347+
this.currentWidthDelegate(),
348+
this.codeBlockModelCollection,
349+
{ codeBlockRenderOptions }
350+
));
337351
renderFileWidgets(part.domNode, this.instantiationService, this.chatMarkdownAnchorService, this._store);
338352
container.append(part.domNode);
339353

src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { getOutput } from '../../outputHelpers.js';
1717
import { getTaskDefinition, getTaskForTool } from '../../taskHelpers.js';
1818
import { MarkdownString } from '../../../../../../../base/common/htmlContent.js';
1919
import { IConfigurationService } from '../../../../../../../platform/configuration/common/configuration.js';
20+
import { Codicon } from '../../../../../../../base/common/codicons.js';
2021

2122
type RunTaskToolClassification = {
2223
taskId: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'The ID of the task.' };
@@ -149,6 +150,7 @@ export const RunTaskToolData: IToolData = {
149150
displayName: localize('runInTerminalTool.displayName', 'Run Task'),
150151
modelDescription: 'Runs a VS Code task.\n\n- If you see that an appropriate task exists for building or running code, prefer to use this tool to run the task instead of using the run_in_terminal tool.\n- Make sure that any appropriate build or watch task is running before trying to run tests or execute code.\n- If the user asks to run a task, use this tool to do so.',
151152
userDescription: localize('runInTerminalTool.userDescription', 'Tool for running tasks in the workspace'),
153+
icon: Codicon.tools,
152154
source: ToolDataSource.Internal,
153155
inputSchema: {
154156
'type': 'object',

0 commit comments

Comments
 (0)