Path: blob/main/src/vs/workbench/contrib/accessibility/browser/accessibleViewContributions.ts
3296 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 } from '../../../../base/common/lifecycle.js';6import { accessibleViewIsShown } from './accessibilityConfiguration.js';7import { AccessibilityHelpAction, AccessibleViewAction } from './accessibleViewActions.js';8import { AccessibleViewType, AccessibleContentProvider, ExtensionContentProvider, IAccessibleViewService } from '../../../../platform/accessibility/browser/accessibleView.js';9import { AccessibleViewRegistry } from '../../../../platform/accessibility/browser/accessibleViewRegistry.js';10import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';1112export class AccesibleViewHelpContribution extends Disposable {13static ID: 'accesibleViewHelpContribution';14constructor() {15super();16this._register(AccessibilityHelpAction.addImplementation(115, 'accessible-view-help', accessor => {17accessor.get(IAccessibleViewService).showAccessibleViewHelp();18return true;19}, accessibleViewIsShown));20}21}2223export class AccesibleViewContributions extends Disposable {24static ID: 'accesibleViewContributions';25constructor() {26super();27AccessibleViewRegistry.getImplementations().forEach(impl => {28const implementation = (accessor: ServicesAccessor) => {29const provider: AccessibleContentProvider | ExtensionContentProvider | undefined = impl.getProvider(accessor);30if (!provider) {31return false;32}33try {34accessor.get(IAccessibleViewService).show(provider);35return true;36} catch {37provider.dispose();38return false;39}40};41if (impl.type === AccessibleViewType.View) {42this._register(AccessibleViewAction.addImplementation(impl.priority, impl.name, implementation, impl.when));43} else {44this._register(AccessibilityHelpAction.addImplementation(impl.priority, impl.name, implementation, impl.when));45}46});47}48}495051