Path: blob/main/src/vs/platform/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 { URI } from '../../../base/common/uri.js';6import { createDecorator } from '../../instantiation/common/instantiation.js';78export const enum RecommendationSource {9FILE = 1,10WORKSPACE = 2,11EXE = 312}1314export interface IExtensionRecommendations {15source: RecommendationSource;16extensions: string[];17name: string;18searchValue?: string;19}2021export function RecommendationSourceToString(source: RecommendationSource) {22switch (source) {23case RecommendationSource.FILE: return 'file';24case RecommendationSource.WORKSPACE: return 'workspace';25case RecommendationSource.EXE: return 'exe';26}27}2829export const enum RecommendationsNotificationResult {30Ignored = 'ignored',31Cancelled = 'cancelled',32TooMany = 'toomany',33IncompatibleWindow = 'incompatibleWindow',34Accepted = 'reacted',35}3637export const IExtensionRecommendationNotificationService = createDecorator<IExtensionRecommendationNotificationService>('IExtensionRecommendationNotificationService');3839export interface IExtensionRecommendationNotificationService {40readonly _serviceBrand: undefined;4142readonly ignoredRecommendations: string[];43hasToIgnoreRecommendationNotifications(): boolean;4445promptImportantExtensionsInstallNotification(recommendations: IExtensionRecommendations): Promise<RecommendationsNotificationResult>;46promptWorkspaceRecommendations(recommendations: Array<string | URI>): Promise<void>;47}48495051