Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/chat/browser/accessibility/chatTerminalOutputAccessibleView.ts
4780 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { AccessibleContentProvider, AccessibleViewProviderId, AccessibleViewType } from '../../../../../platform/accessibility/browser/accessibleView.js';
7
import { IAccessibleViewImplementation } from '../../../../../platform/accessibility/browser/accessibleViewRegistry.js';
8
import { ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js';
9
import { AccessibilityVerbositySettingId } from '../../../accessibility/browser/accessibilityConfiguration.js';
10
import { ChatContextKeys } from '../../common/actions/chatContextKeys.js';
11
import { ITerminalChatService } from '../../../terminal/browser/terminal.js';
12
13
export class ChatTerminalOutputAccessibleView implements IAccessibleViewImplementation {
14
readonly priority = 115;
15
readonly name = 'chatTerminalOutput';
16
readonly type = AccessibleViewType.View;
17
readonly when = ChatContextKeys.inChatTerminalToolOutput;
18
19
getProvider(accessor: ServicesAccessor) {
20
const terminalChatService = accessor.get(ITerminalChatService);
21
const part = terminalChatService.getFocusedProgressPart();
22
if (!part) {
23
return;
24
}
25
26
const content = part.getCommandAndOutputAsText();
27
if (!content) {
28
return;
29
}
30
31
return new AccessibleContentProvider(
32
AccessibleViewProviderId.ChatTerminalOutput,
33
{ type: AccessibleViewType.View, id: AccessibleViewProviderId.ChatTerminalOutput, language: 'text' },
34
() => content,
35
() => part.focusOutput(),
36
AccessibilityVerbositySettingId.TerminalChatOutput
37
);
38
}
39
}
40
41