@@ -19,10 +19,18 @@ import getFileServiceOverride from './service-override/files'
1919interface ServiceInitializeParticipant {
2020 ( accessor : ServicesAccessor ) : Promise < void >
2121}
22+ const serviceInitializePreParticipants : ServiceInitializeParticipant [ ] = [ ]
2223const serviceInitializeParticipants : ServiceInitializeParticipant [ ] = [ ]
24+ const serviceInitializePostParticipants : ServiceInitializeParticipant [ ] = [ ]
25+ export function registerServiceInitializePreParticipant ( participant : ServiceInitializeParticipant ) : void {
26+ serviceInitializePreParticipants . push ( participant )
27+ }
2328export function registerServiceInitializeParticipant ( participant : ServiceInitializeParticipant ) : void {
2429 serviceInitializeParticipants . push ( participant )
2530}
31+ export function registerServiceInitializePostParticipant ( participant : ServiceInitializeParticipant ) : void {
32+ serviceInitializePostParticipants . push ( participant )
33+ }
2634
2735async function initServices ( overrides : IEditorOverrideServices ) : Promise < IInstantiationService > {
2836 const instantiationService = StandaloneServices . initialize ( {
@@ -33,6 +41,10 @@ async function initServices (overrides: IEditorOverrideServices): Promise<IInsta
3341 ...overrides
3442 } )
3543
44+ await instantiationService . invokeFunction ( async accessor => {
45+ await Promise . all ( serviceInitializePreParticipants . map ( participant => participant ( accessor ) ) )
46+ } )
47+
3648 await instantiationService . invokeFunction ( async accessor => {
3749 const lifecycleService = accessor . get ( ILifecycleService )
3850
@@ -42,6 +54,10 @@ async function initServices (overrides: IEditorOverrideServices): Promise<IInsta
4254 lifecycleService . phase = LifecyclePhase . Ready
4355 } )
4456
57+ await instantiationService . invokeFunction ( async accessor => {
58+ await Promise . all ( serviceInitializePostParticipants . map ( participant => participant ( accessor ) ) )
59+ } )
60+
4561 return instantiationService
4662}
4763
0 commit comments