extensions.ts 1.8 KB
Newer Older
J
Joao Moreno 已提交
1 2 3 4 5 6
/*---------------------------------------------------------------------------------------------
 *  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';
7
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
8 9 10 11
import Event from 'vs/base/common/event';
import { TPromise } from 'vs/base/common/winjs.base';
import { IPager } from 'vs/base/common/paging';
import { IQueryOptions } from 'vs/platform/extensionManagement/common/extensionManagement';
J
Joao Moreno 已提交
12

J
Joao Moreno 已提交
13
export const VIEWLET_ID = 'workbench.view.extensions';
14

J
Joao Moreno 已提交
15 16
export interface IExtensionsViewlet extends IViewlet {
	search(text: string, immediate?: boolean): void;
17
}
18 19 20 21

export enum ExtensionState {
	Installing,
	Installed,
J
Joao Moreno 已提交
22
	NeedsRestart,
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
	Uninstalled
}

export interface IExtension {
	state: ExtensionState;
	name: string;
	displayName: string;
	publisher: string;
	publisherDisplayName: string;
	version: string;
	latestVersion: string;
	description: string;
	readmeUrl: string;
	iconUrl: string;
	installCount: number;
	rating: number;
	ratingCount: number;
	outdated: boolean;
}

export var SERVICE_ID = 'extensionsWorkbenchService';

export var IExtensionsWorkbenchService = createDecorator<IExtensionsWorkbenchService>(SERVICE_ID);

export interface IExtensionsWorkbenchService {
48
	_serviceBrand: any;
49 50 51 52
	onChange: Event<void>;
	local: IExtension[];
	queryLocal(): TPromise<IExtension[]>;
	queryGallery(options?: IQueryOptions): TPromise<IPager<IExtension>>;
J
Joao Moreno 已提交
53
	getRecommendations(): TPromise<IExtension[]>;
54 55 56 57
	canInstall(extension: IExtension): boolean;
	install(extension: IExtension): TPromise<void>;
	uninstall(extension: IExtension): TPromise<void>;
}