voice - address some action integration issues for terminal inline chat (#208792)

This commit is contained in:
Benjamin Pasero 2024-03-26 16:36:37 +01:00 committed by GitHub
parent 22f3839b94
commit 62d83b2a75
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -104,6 +104,15 @@ class VoiceChatSessionControllerFactory {
// Currently Focused Context
if (context === 'focused') {
// Try with the terminal chat
const activeInstance = terminalService.activeInstance;
if (activeInstance) {
const terminalChat = TerminalChatController.activeChatWidget || TerminalChatController.get(activeInstance);
if (terminalChat?.hasFocus()) {
return VoiceChatSessionControllerFactory.doCreateForTerminalChat(terminalChat);
}
}
// Try with the chat widget service, which currently
// only supports the chat view and quick chat
// https://github.com/microsoft/vscode/issues/191191
@ -134,15 +143,6 @@ class VoiceChatSessionControllerFactory {
return VoiceChatSessionControllerFactory.doCreateForInlineChat(inlineChat);
}
}
// Try with the terminal chat
const activeInstance = terminalService.activeInstance;
if (activeInstance) {
const terminalChat = TerminalChatController.activeChatWidget || TerminalChatController.get(activeInstance);
if (terminalChat?.hasFocus()) {
return VoiceChatSessionControllerFactory.doCreateForTerminalChat(terminalChat);
}
}
}
// View Chat
@ -699,7 +699,6 @@ class BaseStopListeningAction extends Action2 {
private readonly target: 'inline' | 'terminal' | 'quick' | 'view' | 'editor' | undefined,
context: RawContextKey<boolean>,
menu: MenuId | undefined,
group: 'navigation' | 'main' = 'navigation'
) {
super({
...desc,
@ -713,7 +712,7 @@ class BaseStopListeningAction extends Action2 {
menu: menu ? [{
id: menu,
when: ContextKeyExpr.and(CanVoiceChat, context),
group,
group: 'navigation',
order: -1
}] : undefined
});
@ -765,7 +764,7 @@ export class StopListeningInTerminalChatAction extends BaseStopListeningAction {
static readonly ID = 'workbench.action.chat.stopListeningInTerminalChat';
constructor() {
super({ id: StopListeningInTerminalChatAction.ID, icon: spinningLoading }, 'terminal', CONTEXT_TERMINAL_VOICE_CHAT_IN_PROGRESS, MenuId.for('terminalChatInput'), 'main');
super({ id: StopListeningInTerminalChatAction.ID, icon: spinningLoading }, 'terminal', CONTEXT_TERMINAL_VOICE_CHAT_IN_PROGRESS, MenuId.for('terminalChatInput'));
}
}
@ -828,7 +827,7 @@ registerThemingParticipant((theme, collector) => {
}
.monaco-workbench:not(.reduce-motion) .interactive-input-part .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled)::after,
.monaco-workbench:not(.reduce-motion) .inline-chat .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled),
.monaco-workbench:not(.reduce-motion) .inline-chat .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled)::after,
.monaco-workbench:not(.reduce-motion) .terminal-inline-chat .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled)::after {
outline: 2px solid ${activeRecordingColor};
outline-offset: -1px;
@ -836,7 +835,8 @@ registerThemingParticipant((theme, collector) => {
}
.monaco-workbench:not(.reduce-motion) .interactive-input-part .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled)::before,
.monaco-workbench:not(.reduce-motion) .inline-chat .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled)::before {
.monaco-workbench:not(.reduce-motion) .inline-chat .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled)::before,
.monaco-workbench:not(.reduce-motion) .terminal-inline-chat .monaco-action-bar .action-label.codicon-loading.codicon-modifier-spin:not(.disabled)::before {
position: absolute;
outline: 1px solid ${activeRecordingColor};
outline-offset: 2px;