From 7084cf9ff1e229e4e2ba8f8d5aa026b63d16fda8 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:18:15 -0700 Subject: [PATCH] Adopt buttonConfigProvider for terminal chat actions Fixes microsoft/vscode-copilot#4288 --- .../chat/browser/terminalChatActions.ts | 1 - .../chat/browser/terminalChatWidget.ts | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.ts b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.ts index 85a05ccbbef..652aa927071 100644 --- a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.ts +++ b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.ts @@ -164,7 +164,6 @@ registerActiveXtermAction({ primary: KeyMod.CtrlCmd | KeyCode.Enter, }, menu: { - // TODO: Allow action to be made primary, the action list is hardcoded within InlineChatWidget id: MENU_TERMINAL_CHAT_WIDGET_STATUS, group: '0_main', order: 0, diff --git a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts index bc2ae67e182..3be5fe74c05 100644 --- a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts +++ b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts @@ -13,7 +13,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { IChatProgress } from 'vs/workbench/contrib/chat/common/chatService'; import { InlineChatWidget } from 'vs/workbench/contrib/inlineChat/browser/inlineChatWidget'; import { ITerminalInstance } from 'vs/workbench/contrib/terminal/browser/terminal'; -import { MENU_TERMINAL_CHAT_INPUT, MENU_TERMINAL_CHAT_WIDGET, MENU_TERMINAL_CHAT_WIDGET_FEEDBACK, MENU_TERMINAL_CHAT_WIDGET_STATUS, TerminalChatContextKeys } from 'vs/workbench/contrib/terminalContrib/chat/browser/terminalChat'; +import { MENU_TERMINAL_CHAT_INPUT, MENU_TERMINAL_CHAT_WIDGET, MENU_TERMINAL_CHAT_WIDGET_FEEDBACK, MENU_TERMINAL_CHAT_WIDGET_STATUS, TerminalChatCommandId, TerminalChatContextKeys } from 'vs/workbench/contrib/terminalContrib/chat/browser/terminalChat'; const enum Constants { HorizontalMargin = 10 @@ -51,7 +51,18 @@ export class TerminalChatWidget extends Disposable { { inputMenuId: MENU_TERMINAL_CHAT_INPUT, widgetMenuId: MENU_TERMINAL_CHAT_WIDGET, - statusMenuId: MENU_TERMINAL_CHAT_WIDGET_STATUS, + statusMenuId: { + menu: MENU_TERMINAL_CHAT_WIDGET_STATUS, + options: { + buttonConfigProvider: action => { + if (action.id === TerminalChatCommandId.ViewInChat || action.id === TerminalChatCommandId.RunCommand) { + return { isSecondary: false }; + } else { + return { isSecondary: true }; + } + } + } + }, feedbackMenuId: MENU_TERMINAL_CHAT_WIDGET_FEEDBACK, telemetrySource: 'terminal-inline-chat' }