Path: blob/main/src/vs/workbench/services/extensionRecommendations/common/extensionRecommendations.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 { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';6import { IStringDictionary } from '../../../../base/common/collections.js';7import { Event } from '../../../../base/common/event.js';8import { URI } from '../../../../base/common/uri.js';910export const enum ExtensionRecommendationReason {11Workspace,12File,13Executable,14WorkspaceConfig,15DynamicWorkspace,16Experimental,17Application,18}1920export interface IExtensionRecommendationReason {21reasonId: ExtensionRecommendationReason;22reasonText: string;23}2425export const IExtensionRecommendationsService = createDecorator<IExtensionRecommendationsService>('extensionRecommendationsService');2627export interface IExtensionRecommendationsService {28readonly _serviceBrand: undefined;2930readonly onDidChangeRecommendations: Event<void>;31getAllRecommendationsWithReason(): IStringDictionary<IExtensionRecommendationReason>;3233getImportantRecommendations(): Promise<string[]>;34getOtherRecommendations(): Promise<string[]>;35getFileBasedRecommendations(): string[];36getExeBasedRecommendations(exe?: string): Promise<{ important: string[]; others: string[] }>;37getConfigBasedRecommendations(): Promise<{ important: string[]; others: string[] }>;38getWorkspaceRecommendations(): Promise<Array<string | URI>>;39getKeymapRecommendations(): string[];40getLanguageRecommendations(): string[];41getRemoteRecommendations(): string[];42}4344export type IgnoredRecommendationChangeNotification = {45extensionId: string;46isRecommended: boolean;47};4849export const IExtensionIgnoredRecommendationsService = createDecorator<IExtensionIgnoredRecommendationsService>('IExtensionIgnoredRecommendationsService');5051export interface IExtensionIgnoredRecommendationsService {52readonly _serviceBrand: undefined;5354onDidChangeIgnoredRecommendations: Event<void>;55readonly ignoredRecommendations: string[];5657onDidChangeGlobalIgnoredRecommendation: Event<IgnoredRecommendationChangeNotification>;58readonly globalIgnoredRecommendations: string[];59toggleGlobalIgnoredRecommendation(extensionId: string, ignore: boolean): void;60}6162636465