Path: blob/main/src/vs/workbench/contrib/debug/common/replAccessibilityAnnouncer.ts
5292 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 { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';6import { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';7import { ILogService } from '../../../../platform/log/common/log.js';8import { IWorkbenchContribution } from '../../../common/contributions.js';9import { IDebugService } from './debug.js';1011export class ReplAccessibilityAnnouncer extends Disposable implements IWorkbenchContribution {12static ID = 'debug.replAccessibilityAnnouncer';13constructor(14@IDebugService debugService: IDebugService,15@IAccessibilityService accessibilityService: IAccessibilityService,16@ILogService logService: ILogService17) {18super();19const viewModel = debugService.getViewModel();20const mutableDispoable = this._register(new MutableDisposable());21this._register(viewModel.onDidFocusSession((session) => {22mutableDispoable.clear();23if (!session) {24return;25}26mutableDispoable.value = session.onDidChangeReplElements((element) => {27if (!element || !('originalExpression' in element)) {28// element was removed or hasn't been resolved yet29return;30}31const value = element.toString();32accessibilityService.status(value);33logService.trace('ReplAccessibilityAnnouncer#onDidChangeReplElements', element.originalExpression + ': ' + value);34});35}));36}37}383940