Path: blob/main/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.ts
4780 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { AccessibleContentProvider, AccessibleViewProviderId, AccessibleViewType } from '../../../../../platform/accessibility/browser/accessibleView.js';6import { IAccessibleViewImplementation } from '../../../../../platform/accessibility/browser/accessibleViewRegistry.js';7import { ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js';8import { AccessibilityVerbositySettingId } from '../../../accessibility/browser/accessibilityConfiguration.js';9import { ChatContextKeys } from '../../common/actions/chatContextKeys.js';10import { ITerminalChatService } from '../../../terminal/browser/terminal.js';1112export class ChatTerminalOutputAccessibleView implements IAccessibleViewImplementation {13readonly priority = 115;14readonly name = 'chatTerminalOutput';15readonly type = AccessibleViewType.View;16readonly when = ChatContextKeys.inChatTerminalToolOutput;1718getProvider(accessor: ServicesAccessor) {19const terminalChatService = accessor.get(ITerminalChatService);20const part = terminalChatService.getFocusedProgressPart();21if (!part) {22return;23}2425const content = part.getCommandAndOutputAsText();26if (!content) {27return;28}2930return new AccessibleContentProvider(31AccessibleViewProviderId.ChatTerminalOutput,32{ type: AccessibleViewType.View, id: AccessibleViewProviderId.ChatTerminalOutput, language: 'text' },33() => content,34() => part.focusOutput(),35AccessibilityVerbositySettingId.TerminalChatOutput36);37}38}394041