extensions.contribution.ts 4.0 KB
Newer Older
E
Erich Gamma 已提交
1 2 3 4 5
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

6
import 'vs/css!./media/extensions';
J
Joao Moreno 已提交
7
import { localize } from 'vs/nls';
J
Joao Moreno 已提交
8
import { Registry } from 'vs/platform/platform';
E
Erich Gamma 已提交
9
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
J
Joao Moreno 已提交
10
import { IStatusbarRegistry, Extensions as StatusbarExtensions, StatusbarItemDescriptor, StatusbarAlignment } from 'vs/workbench/browser/parts/statusbar/statusbar';
11
import { ExtensionsStatusbarItem } from 'vs/workbench/parts/extensions/electron-browser/extensionsWidgets';
I
isidor 已提交
12
import { IGalleryService, ExtensionsLabel, ExtensionsChannelId } from 'vs/workbench/parts/extensions/common/extensions';
J
Joao Moreno 已提交
13
import { GalleryService } from 'vs/workbench/parts/extensions/common/vsoGalleryService';
E
Erich Gamma 已提交
14 15
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';
import { ExtensionsWorkbenchExtension } from 'vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchExtension';
J
Joao Moreno 已提交
16
import { IOutputChannelRegistry, Extensions as OutputExtensions } from 'vs/workbench/parts/output/common/output';
J
Joao Moreno 已提交
17
import { EditorDescriptor, IEditorRegistry, Extensions as EditorExtensions, IEditorInputFactory } from 'vs/workbench/browser/parts/editor/baseEditor';
J
Joao Moreno 已提交
18 19 20
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput';
import { ExtensionsPart } from 'vs/workbench/parts/extensions/electron-browser/extensionsPart';
J
Joao Moreno 已提交
21 22
import { GlobalExtensionsActionContributor } from 'vs/workbench/parts/extensions/electron-browser/extensionsActions';
import { IActionBarRegistry, Scope as ActionBarScope, Extensions as ActionBarExtensions } from 'vs/workbench/browser/actionBarRegistry';
J
Joao Moreno 已提交
23 24
import { EditorInput } from 'vs/workbench/common/editor';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
J
Joao Moreno 已提交
25
import { ViewletRegistry, Extensions as ViewletExtensions, ViewletDescriptor } from 'vs/workbench/browser/viewlet';
J
Joao Moreno 已提交
26 27 28 29 30 31 32 33 34 35 36 37 38

class ExtensionsInputFactory implements IEditorInputFactory {

	constructor() {}

	public serialize(editorInput: EditorInput): string {
		return '';
	}

	public deserialize(instantiationService: IInstantiationService, resourceRaw: string): EditorInput {
		return instantiationService.createInstance(ExtensionsInput);
	}
}
E
Erich Gamma 已提交
39 40 41

registerSingleton(IGalleryService, GalleryService);

J
Joao Moreno 已提交
42 43
Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench)
	.registerWorkbenchContribution(ExtensionsWorkbenchExtension);
44

J
Joao Moreno 已提交
45 46 47 48
Registry.as<IStatusbarRegistry>(StatusbarExtensions.Statusbar)
	.registerStatusbarItem(new StatusbarItemDescriptor(ExtensionsStatusbarItem, StatusbarAlignment.LEFT,10000));

Registry.as<IOutputChannelRegistry>(OutputExtensions.OutputChannels)
49
	.registerChannel(ExtensionsChannelId, ExtensionsLabel);
J
Joao Moreno 已提交
50

J
Joao Moreno 已提交
51 52 53
Registry.as<IEditorRegistry>(EditorExtensions.Editors)
	.registerEditorInputFactory(ExtensionsInput.ID, ExtensionsInputFactory);

J
Joao Moreno 已提交
54 55 56 57 58 59 60 61 62
const editorDescriptor = new EditorDescriptor(
	ExtensionsPart.ID,
	localize('extensions', "Extensions"),
	'vs/workbench/parts/extensions/electron-browser/extensionsPart',
	'ExtensionsPart'
);

Registry.as<IEditorRegistry>(EditorExtensions.Editors)
	.registerEditor(editorDescriptor, [new SyncDescriptor(ExtensionsInput)]);
J
Joao Moreno 已提交
63 64

Registry.as<IActionBarRegistry>(ActionBarExtensions.Actionbar)
J
Joao Moreno 已提交
65 66 67 68 69 70 71 72 73 74 75 76 77
	.registerActionBarContributor(ActionBarScope.GLOBAL, GlobalExtensionsActionContributor);

const viewletDescriptor = new ViewletDescriptor(
	'vs/workbench/parts/extensions/electron-browser/extensionsViewlet',
	'ExtensionsViewlet',
	'workbench.viewlet.extensions',
	localize('extensions', "Extensions"),
	'extensions',
	100
);

Registry.as<ViewletRegistry>(ViewletExtensions.Viewlets)
	.registerViewlet(viewletDescriptor);