Path: blob/main/src/vs/platform/accessibility/browser/accessibleViewRegistry.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 { IDisposable } from '../../../base/common/lifecycle.js';6import { AccessibleViewType, AccessibleContentProvider, ExtensionContentProvider } from './accessibleView.js';7import { ContextKeyExpression } from '../../contextkey/common/contextkey.js';8import { ServicesAccessor } from '../../instantiation/common/instantiation.js';910export interface IAccessibleViewImplementation {11type: AccessibleViewType;12priority: number;13name: string;14/**15* @returns the provider or undefined if the view should not be shown16*/17getProvider: (accessor: ServicesAccessor) => AccessibleContentProvider | ExtensionContentProvider | undefined;18when?: ContextKeyExpression | undefined;19}2021export const AccessibleViewRegistry = new class AccessibleViewRegistry {22_implementations: IAccessibleViewImplementation[] = [];2324register(implementation: IAccessibleViewImplementation): IDisposable {25this._implementations.push(implementation);26return {27dispose: () => {28const idx = this._implementations.indexOf(implementation);29if (idx !== -1) {30this._implementations.splice(idx, 1);31}32}33};34}3536getImplementations(): IAccessibleViewImplementation[] {37return this._implementations;38}39};40414243