Skip to content

Commit a8653cf

Browse files
authored
contrib - towards more instantiation kinds (microsoft#204229)
1 parent 1ade6d2 commit a8653cf

File tree

64 files changed

+510
-248
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+510
-248
lines changed

src/vs/workbench/api/browser/extensionHost.contribution.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { IWorkbenchContribution, WorkbenchContributionInstantiation, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
6+
import { IWorkbenchContribution, WorkbenchPhase, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
77
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
88

99
// --- other interested parties
@@ -106,4 +106,4 @@ export class ExtensionPoints implements IWorkbenchContribution {
106106
}
107107
}
108108

109-
registerWorkbenchContribution2(ExtensionPoints.ID, ExtensionPoints, WorkbenchContributionInstantiation.BlockStartup);
109+
registerWorkbenchContribution2(ExtensionPoints.ID, ExtensionPoints, WorkbenchPhase.BlockStartup);

src/vs/workbench/api/browser/viewsExtensionPoint.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { ThemeIcon } from 'vs/base/common/themables';
1717
import { Extensions as ViewletExtensions, PaneCompositeRegistry } from 'vs/workbench/browser/panecomposite';
1818
import { CustomTreeView, RawCustomTreeViewContextKey, TreeViewPane } from 'vs/workbench/browser/parts/views/treeView';
1919
import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer';
20-
import { IWorkbenchContribution, WorkbenchContributionInstantiation, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
20+
import { IWorkbenchContribution, WorkbenchPhase, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
2121
import { Extensions as ViewContainerExtensions, ICustomViewDescriptor, IViewContainersRegistry, IViewDescriptor, IViewsRegistry, ResolvableTreeItem, ViewContainer, ViewContainerLocation } from 'vs/workbench/common/views';
2222
import { VIEWLET_ID as DEBUG } from 'vs/workbench/contrib/debug/common/debug';
2323
import { VIEWLET_ID as EXPLORER } from 'vs/workbench/contrib/files/common/files';
@@ -666,4 +666,4 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
666666
}
667667
}
668668

669-
registerWorkbenchContribution2(ViewsExtensionHandler.ID, ViewsExtensionHandler, WorkbenchContributionInstantiation.BlockStartup);
669+
registerWorkbenchContribution2(ViewsExtensionHandler.ID, ViewsExtensionHandler, WorkbenchPhase.BlockStartup);

src/vs/workbench/browser/actions/textInputActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/la
99
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
1010
import { Disposable } from 'vs/base/common/lifecycle';
1111
import { EventHelper, addDisposableListener, getActiveDocument, getWindow } from 'vs/base/browser/dom';
12-
import { IWorkbenchContribution, WorkbenchContributionInstantiation, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
12+
import { IWorkbenchContribution, WorkbenchPhase, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
1313
import { isNative } from 'vs/base/common/platform';
1414
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
1515
import { StandardMouseEvent } from 'vs/base/browser/mouseEvent';
@@ -107,5 +107,5 @@ export class TextInputActionsProvider extends Disposable implements IWorkbenchCo
107107
registerWorkbenchContribution2(
108108
TextInputActionsProvider.ID,
109109
TextInputActionsProvider,
110-
WorkbenchContributionInstantiation.BlockRestore // Block to allow right-click into input fields before restore finished
110+
WorkbenchPhase.BlockRestore // Block to allow right-click into input fields before restore finished
111111
);

src/vs/workbench/browser/actions/widgetNavigationCommands.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { KeybindingWeight, KeybindingsRegistry } from 'vs/platform/keybinding/co
99
import { WorkbenchListFocusContextKey, WorkbenchListScrollAtBottomContextKey, WorkbenchListScrollAtTopContextKey } from 'vs/platform/list/browser/listService';
1010
import { Event } from 'vs/base/common/event';
1111
import { combinedDisposable, toDisposable, IDisposable, Disposable } from 'vs/base/common/lifecycle';
12-
import { WorkbenchContributionInstantiation, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
12+
import { WorkbenchPhase, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
1313

1414
/** INavigableContainer represents a logical container composed of widgets that can
1515
be navigated back and forth with key shortcuts */
@@ -112,7 +112,7 @@ export function registerNavigableContainer(container: INavigableContainer): IDis
112112
return NavigableContainerManager.register(container);
113113
}
114114

115-
registerWorkbenchContribution2(NavigableContainerManager.ID, NavigableContainerManager, WorkbenchContributionInstantiation.BlockStartup);
115+
registerWorkbenchContribution2(NavigableContainerManager.ID, NavigableContainerManager, WorkbenchPhase.BlockStartup);
116116

117117
KeybindingsRegistry.registerCommandAndKeybindingRule({
118118
id: 'widgetNavigation.focusPrevious',

src/vs/workbench/browser/editor.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { localize } from 'vs/nls';
7-
import { EditorResourceAccessor, EditorExtensions, SideBySideEditor, IEditorDescriptor as ICommonEditorDescriptor, EditorCloseContext } from 'vs/workbench/common/editor';
7+
import { EditorResourceAccessor, EditorExtensions, SideBySideEditor, IEditorDescriptor as ICommonEditorDescriptor, EditorCloseContext, IWillInstantiateEditorPaneEvent } from 'vs/workbench/common/editor';
88
import { EditorInput } from 'vs/workbench/common/editor/editorInput';
99
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
1010
import { Registry } from 'vs/platform/registry/common/platform';
@@ -19,6 +19,7 @@ import { URI } from 'vs/base/common/uri';
1919
import { Schemas } from 'vs/base/common/network';
2020
import { IEditorGroup } from 'vs/workbench/services/editor/common/editorGroupsService';
2121
import { Iterable } from 'vs/base/common/iterator';
22+
import { Emitter } from 'vs/base/common/event';
2223

2324
//#region Editor Pane Registry
2425

@@ -49,6 +50,14 @@ export interface IEditorPaneRegistry {
4950
*/
5051
export class EditorPaneDescriptor implements IEditorPaneDescriptor {
5152

53+
private static readonly instantiatedEditorPanes = new Set<string>();
54+
static didInstantiateEditorPane(typeId: string): boolean {
55+
return EditorPaneDescriptor.instantiatedEditorPanes.has(typeId);
56+
}
57+
58+
private static readonly _onWillInstantiateEditorPane = new Emitter<IWillInstantiateEditorPaneEvent>();
59+
static readonly onWillInstantiateEditorPane = EditorPaneDescriptor._onWillInstantiateEditorPane.event;
60+
5261
static create<Services extends BrandedService[]>(
5362
ctor: { new(...services: Services): EditorPane },
5463
typeId: string,
@@ -64,7 +73,12 @@ export class EditorPaneDescriptor implements IEditorPaneDescriptor {
6473
) { }
6574

6675
instantiate(instantiationService: IInstantiationService): EditorPane {
67-
return instantiationService.createInstance(this.ctor);
76+
EditorPaneDescriptor._onWillInstantiateEditorPane.fire({ typeId: this.typeId });
77+
78+
const pane = instantiationService.createInstance(this.ctor);
79+
EditorPaneDescriptor.instantiatedEditorPanes.add(this.typeId);
80+
81+
return pane;
6882
}
6983

7084
describes(editorPane: EditorPane): boolean {

src/vs/workbench/browser/parts/dialogs/dialog.web.contribution.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
99
import { ILayoutService } from 'vs/platform/layout/browser/layoutService';
1010
import { ILogService } from 'vs/platform/log/common/log';
1111
import { IProductService } from 'vs/platform/product/common/productService';
12-
import { IWorkbenchContribution, WorkbenchContributionInstantiation, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
12+
import { IWorkbenchContribution, WorkbenchPhase, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
1313
import { IDialogsModel, IDialogViewItem } from 'vs/workbench/common/dialogs';
1414
import { BrowserDialogHandler } from 'vs/workbench/browser/parts/dialogs/dialogHandler';
1515
import { DialogService } from 'vs/workbench/services/dialogs/common/dialogService';
@@ -81,5 +81,5 @@ export class DialogHandlerContribution extends Disposable implements IWorkbenchC
8181
registerWorkbenchContribution2(
8282
DialogHandlerContribution.ID,
8383
DialogHandlerContribution,
84-
WorkbenchContributionInstantiation.BlockStartup // Block to allow for dialogs to show before restore finished
84+
WorkbenchPhase.BlockStartup // Block to allow for dialogs to show before restore finished
8585
);

src/vs/workbench/browser/parts/editor/editor.contribution.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ import { ContextKeyExpr, ContextKeyExpression } from 'vs/platform/contextkey/com
5959
import { isMacintosh } from 'vs/base/common/platform';
6060
import { EditorContributionInstantiation, registerEditorContribution } from 'vs/editor/browser/editorExtensions';
6161
import { FloatingEditorClickMenu } from 'vs/workbench/browser/codeeditor';
62-
import { WorkbenchContributionInstantiation, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
62+
import { WorkbenchPhase, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
6363
import { EditorAutoSave } from 'vs/workbench/browser/parts/editor/editorAutoSave';
6464
import { IQuickAccessRegistry, Extensions as QuickAccessExtensions } from 'vs/platform/quickinput/common/quickAccess';
6565
import { ActiveGroupEditorsByMostRecentlyUsedQuickAccess, AllEditorsByAppearanceQuickAccess, AllEditorsByMostRecentlyUsedQuickAccess } from 'vs/workbench/browser/parts/editor/editorQuickAccess';
@@ -127,10 +127,10 @@ Registry.as<IEditorFactoryRegistry>(EditorExtensions.EditorFactory).registerEdit
127127

128128
//#region Workbench Contributions
129129

130-
registerWorkbenchContribution2(EditorAutoSave.ID, EditorAutoSave, WorkbenchContributionInstantiation.BlockRestore);
131-
registerWorkbenchContribution2(EditorStatusContribution.ID, EditorStatusContribution, WorkbenchContributionInstantiation.BlockRestore);
132-
registerWorkbenchContribution2(UntitledTextEditorWorkingCopyEditorHandler.ID, UntitledTextEditorWorkingCopyEditorHandler, WorkbenchContributionInstantiation.BlockRestore);
133-
registerWorkbenchContribution2(DynamicEditorConfigurations.ID, DynamicEditorConfigurations, WorkbenchContributionInstantiation.BlockRestore);
130+
registerWorkbenchContribution2(EditorAutoSave.ID, EditorAutoSave, WorkbenchPhase.BlockRestore);
131+
registerWorkbenchContribution2(EditorStatusContribution.ID, EditorStatusContribution, WorkbenchPhase.BlockRestore);
132+
registerWorkbenchContribution2(UntitledTextEditorWorkingCopyEditorHandler.ID, UntitledTextEditorWorkingCopyEditorHandler, WorkbenchPhase.BlockRestore);
133+
registerWorkbenchContribution2(DynamicEditorConfigurations.ID, DynamicEditorConfigurations, WorkbenchPhase.BlockRestore);
134134

135135
registerEditorContribution(FloatingEditorClickMenu.ID, FloatingEditorClickMenu, EditorContributionInstantiation.AfterFirstRender);
136136

src/vs/workbench/browser/workbench.contribution.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { IConfigurationRegistry, Extensions as ConfigurationExtensions, Configur
99
import { isMacintosh, isWindows, isLinux, isWeb, isNative } from 'vs/base/common/platform';
1010
import { ConfigurationMigrationWorkbenchContribution, DynamicWorkbenchSecurityConfiguration, IConfigurationMigrationRegistry, workbenchConfigurationNodeBase, Extensions, ConfigurationKeyValuePairs, problemsConfigurationNodeBase } from 'vs/workbench/common/configuration';
1111
import { isStandalone } from 'vs/base/browser/browser';
12-
import { WorkbenchContributionInstantiation, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
12+
import { WorkbenchPhase, registerWorkbenchContribution2 } from 'vs/workbench/common/contributions';
1313
import { ActivityBarPosition, EditorActionsLocation, EditorTabsMode, LayoutSettings } from 'vs/workbench/services/layout/browser/layoutService';
1414

1515
const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
@@ -18,10 +18,10 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
1818
(function registerConfiguration(): void {
1919

2020
// Migration support
21-
registerWorkbenchContribution2(ConfigurationMigrationWorkbenchContribution.ID, ConfigurationMigrationWorkbenchContribution, WorkbenchContributionInstantiation.Eventually);
21+
registerWorkbenchContribution2(ConfigurationMigrationWorkbenchContribution.ID, ConfigurationMigrationWorkbenchContribution, WorkbenchPhase.Eventually);
2222

2323
// Dynamic Configuration
24-
registerWorkbenchContribution2(DynamicWorkbenchSecurityConfiguration.ID, DynamicWorkbenchSecurityConfiguration, WorkbenchContributionInstantiation.AfterRestored);
24+
registerWorkbenchContribution2(DynamicWorkbenchSecurityConfiguration.ID, DynamicWorkbenchSecurityConfiguration, WorkbenchPhase.AfterRestored);
2525

2626
// Workbench
2727
registry.registerConfiguration({

0 commit comments

Comments
 (0)