Path: blob/main/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.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 { Disposable } from '../../../../base/common/lifecycle.js';6import { localize } from '../../../../nls.js';7import { registerAction2 } from '../../../../platform/actions/common/actions.js';8import { IExtensionRecommendationNotificationService } from '../../../../platform/extensionRecommendations/common/extensionRecommendations.js';9import { ExtensionRecommendationNotificationServiceChannel } from '../../../../platform/extensionRecommendations/common/extensionRecommendationsIpc.js';10import { SyncDescriptor } from '../../../../platform/instantiation/common/descriptors.js';11import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js';12import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';13import { ISharedProcessService } from '../../../../platform/ipc/electron-browser/services.js';14import { Registry } from '../../../../platform/registry/common/platform.js';15import { EditorPaneDescriptor, IEditorPaneRegistry } from '../../../browser/editor.js';16import { IWorkbenchContribution, IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from '../../../common/contributions.js';17import { EditorExtensions, IEditorFactoryRegistry, IEditorSerializer } from '../../../common/editor.js';18import { EditorInput } from '../../../common/editor/editorInput.js';19import { LifecyclePhase } from '../../../services/lifecycle/common/lifecycle.js';20import { RuntimeExtensionsInput } from '../common/runtimeExtensionsInput.js';21import { DebugExtensionHostInNewWindowAction, DebugExtensionsContribution, DebugExtensionHostInDevToolsAction } from './debugExtensionHostAction.js';22import { ExtensionHostProfileService } from './extensionProfileService.js';23import { CleanUpExtensionsFolderAction, OpenExtensionsFolderAction } from './extensionsActions.js';24import { ExtensionsAutoProfiler } from './extensionsAutoProfiler.js';25import { InstallRemoteExtensionsContribution, RemoteExtensionsInitializerContribution } from './remoteExtensionsInit.js';26import { IExtensionHostProfileService, OpenExtensionHostProfileACtion, RuntimeExtensionsEditor, SaveExtensionHostProfileAction, StartExtensionHostProfileAction, StopExtensionHostProfileAction } from './runtimeExtensionsEditor.js';2728// Singletons29registerSingleton(IExtensionHostProfileService, ExtensionHostProfileService, InstantiationType.Delayed);3031// Running Extensions Editor32Registry.as<IEditorPaneRegistry>(EditorExtensions.EditorPane).registerEditorPane(33EditorPaneDescriptor.create(RuntimeExtensionsEditor, RuntimeExtensionsEditor.ID, localize('runtimeExtension', "Running Extensions")),34[new SyncDescriptor(RuntimeExtensionsInput)]35);3637class RuntimeExtensionsInputSerializer implements IEditorSerializer {38canSerialize(editorInput: EditorInput): boolean {39return true;40}41serialize(editorInput: EditorInput): string {42return '';43}44deserialize(instantiationService: IInstantiationService): EditorInput {45return RuntimeExtensionsInput.instance;46}47}4849Registry.as<IEditorFactoryRegistry>(EditorExtensions.EditorFactory).registerEditorSerializer(RuntimeExtensionsInput.ID, RuntimeExtensionsInputSerializer);505152// Global actions5354class ExtensionsContributions extends Disposable implements IWorkbenchContribution {5556constructor(57@IExtensionRecommendationNotificationService extensionRecommendationNotificationService: IExtensionRecommendationNotificationService,58@ISharedProcessService sharedProcessService: ISharedProcessService,59) {60super();6162sharedProcessService.registerChannel('extensionRecommendationNotification', new ExtensionRecommendationNotificationServiceChannel(extensionRecommendationNotificationService));6364this._register(registerAction2(OpenExtensionsFolderAction));65this._register(registerAction2(CleanUpExtensionsFolderAction));66}67}6869const workbenchRegistry = Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench);70workbenchRegistry.registerWorkbenchContribution(ExtensionsContributions, LifecyclePhase.Restored);71workbenchRegistry.registerWorkbenchContribution(ExtensionsAutoProfiler, LifecyclePhase.Eventually);72workbenchRegistry.registerWorkbenchContribution(RemoteExtensionsInitializerContribution, LifecyclePhase.Restored);73workbenchRegistry.registerWorkbenchContribution(InstallRemoteExtensionsContribution, LifecyclePhase.Restored);74workbenchRegistry.registerWorkbenchContribution(DebugExtensionsContribution, LifecyclePhase.Restored);7576// Register Commands7778registerAction2(DebugExtensionHostInNewWindowAction);79registerAction2(StartExtensionHostProfileAction);80registerAction2(StopExtensionHostProfileAction);81registerAction2(SaveExtensionHostProfileAction);82registerAction2(OpenExtensionHostProfileACtion);83registerAction2(DebugExtensionHostInDevToolsAction);848586