/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IViewlet } from 'vs/workbench/common/viewlet'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import Event from 'vs/base/common/event'; import { TPromise } from 'vs/base/common/winjs.base'; import { IPager } from 'vs/base/common/paging'; import { IQueryOptions, IExtensionManifest, LocalExtensionType, EnablementState, ILocalExtension } from 'vs/platform/extensionManagement/common/extensionManagement'; export const VIEWLET_ID = 'workbench.view.extensions'; export interface IExtensionsViewlet extends IViewlet { search(text: string): void; } export enum ExtensionState { Installing, Installed, Uninstalling, Uninstalled } export interface IExtension { type: LocalExtensionType; state: ExtensionState; name: string; displayName: string; id: string; uuid: string; publisher: string; publisherDisplayName: string; version: string; latestVersion: string; description: string; url: string; repository: string; iconUrl: string; iconUrlFallback: string; licenseUrl: string; installCount: number; rating: number; ratingCount: number; outdated: boolean; enablementState: EnablementState; dependencies: string[]; telemetryData: any; preview: boolean; getManifest(): TPromise; getReadme(): TPromise; getChangelog(): TPromise; local?: ILocalExtension; } export interface IExtensionDependencies { dependencies: IExtensionDependencies[]; hasDependencies: boolean; identifier: string; extension: IExtension; dependent: IExtensionDependencies; } export const SERVICE_ID = 'extensionsWorkbenchService'; export const IExtensionsWorkbenchService = createDecorator(SERVICE_ID); export interface IExtensionsWorkbenchService { _serviceBrand: any; onChange: Event; local: IExtension[]; queryLocal(): TPromise; queryGallery(options?: IQueryOptions): TPromise>; canInstall(extension: IExtension): boolean; install(vsix: string): TPromise; install(extension: IExtension, promptToInstallDependencies?: boolean): TPromise; uninstall(extension: IExtension): TPromise; setEnablement(extension: IExtension, enablementState: EnablementState): TPromise; loadDependencies(extension: IExtension): TPromise; open(extension: IExtension, sideByside?: boolean): TPromise; checkForUpdates(): TPromise; allowedBadgeProviders: string[]; } export const ConfigurationKey = 'extensions'; export const AutoUpdateConfigurationKey = 'extensions.autoUpdate'; export interface IExtensionsConfiguration { autoUpdate: boolean; ignoreRecommendations: boolean; }