@@ -45,13 +45,15 @@ export interface IExtensionAPI {
4545
4646export class ExtensionActivationTimes {
4747
48- public static NONE = new ExtensionActivationTimes ( - 1 , - 1 , - 1 ) ;
48+ public static NONE = new ExtensionActivationTimes ( false , - 1 , - 1 , - 1 ) ;
4949
50+ public readonly startup : boolean ;
5051 public readonly codeLoadingTime : number ;
5152 public readonly activateCallTime : number ;
5253 public readonly activateResolvedTime : number ;
5354
54- constructor ( codeLoadingTime : number , activateCallTime : number , activateResolvedTime : number ) {
55+ constructor ( startup : boolean , codeLoadingTime : number , activateCallTime : number , activateResolvedTime : number ) {
56+ this . startup = startup ;
5557 this . codeLoadingTime = codeLoadingTime ;
5658 this . activateCallTime = activateCallTime ;
5759 this . activateResolvedTime = activateResolvedTime ;
@@ -60,14 +62,16 @@ export class ExtensionActivationTimes {
6062
6163export class ExtensionActivationTimesBuilder {
6264
65+ private readonly _startup : boolean ;
6366 private _codeLoadingStart : number ;
6467 private _codeLoadingStop : number ;
6568 private _activateCallStart : number ;
6669 private _activateCallStop : number ;
6770 private _activateResolveStart : number ;
6871 private _activateResolveStop : number ;
6972
70- constructor ( ) {
73+ constructor ( startup : boolean ) {
74+ this . _startup = startup ;
7175 this . _codeLoadingStart = - 1 ;
7276 this . _codeLoadingStop = - 1 ;
7377 this . _activateCallStart = - 1 ;
@@ -85,6 +89,7 @@ export class ExtensionActivationTimesBuilder {
8589
8690 public build ( ) : ExtensionActivationTimes {
8791 return new ExtensionActivationTimes (
92+ this . _startup ,
8893 this . _delta ( this . _codeLoadingStart , this . _codeLoadingStop ) ,
8994 this . _delta ( this . _activateCallStart , this . _activateCallStop ) ,
9095 this . _delta ( this . _activateResolveStart , this . _activateResolveStop )
@@ -154,7 +159,7 @@ export class FailedExtension extends ActivatedExtension {
154159export interface IExtensionsActivatorHost {
155160 showMessage ( severity : Severity , message : string ) : void ;
156161
157- actualActivateExtension ( extensionDescription : IExtensionDescription ) : TPromise < ActivatedExtension > ;
162+ actualActivateExtension ( extensionDescription : IExtensionDescription , startup : boolean ) : TPromise < ActivatedExtension > ;
158163}
159164
160165export class ExtensionsActivator {
@@ -187,23 +192,23 @@ export class ExtensionsActivator {
187192 return this . _activatedExtensions [ extensionId ] ;
188193 }
189194
190- public activateByEvent ( activationEvent : string ) : TPromise < void > {
195+ public activateByEvent ( activationEvent : string , startup : boolean ) : TPromise < void > {
191196 if ( this . _alreadyActivatedEvents [ activationEvent ] ) {
192197 return NO_OP_VOID_PROMISE ;
193198 }
194199 let activateExtensions = this . _registry . getExtensionDescriptionsForActivationEvent ( activationEvent ) ;
195- return this . _activateExtensions ( activateExtensions , 0 ) . then ( ( ) => {
200+ return this . _activateExtensions ( activateExtensions , startup , 0 ) . then ( ( ) => {
196201 this . _alreadyActivatedEvents [ activationEvent ] = true ;
197202 } ) ;
198203 }
199204
200- public activateById ( extensionId : string ) : TPromise < void > {
205+ public activateById ( extensionId : string , startup : boolean ) : TPromise < void > {
201206 let desc = this . _registry . getExtensionDescription ( extensionId ) ;
202207 if ( ! desc ) {
203208 throw new Error ( 'Extension `' + extensionId + '` is not known' ) ;
204209 }
205210
206- return this . _activateExtensions ( [ desc ] , 0 ) ;
211+ return this . _activateExtensions ( [ desc ] , startup , 0 ) ;
207212 }
208213
209214 /**
@@ -247,7 +252,7 @@ export class ExtensionsActivator {
247252 }
248253 }
249254
250- private _activateExtensions ( extensionDescriptions : IExtensionDescription [ ] , recursionLevel : number ) : TPromise < void > {
255+ private _activateExtensions ( extensionDescriptions : IExtensionDescription [ ] , startup : boolean , recursionLevel : number ) : TPromise < void > {
251256 // console.log(recursionLevel, '_activateExtensions: ', extensionDescriptions.map(p => p.id));
252257 if ( extensionDescriptions . length === 0 ) {
253258 return TPromise . as ( void 0 ) ;
@@ -289,15 +294,15 @@ export class ExtensionsActivator {
289294
290295 if ( red . length === 0 ) {
291296 // Finally reached only leafs!
292- return TPromise . join ( green . map ( ( p ) => this . _activateExtension ( p ) ) ) . then ( _ => void 0 ) ;
297+ return TPromise . join ( green . map ( ( p ) => this . _activateExtension ( p , startup ) ) ) . then ( _ => void 0 ) ;
293298 }
294299
295- return this . _activateExtensions ( green , recursionLevel + 1 ) . then ( _ => {
296- return this . _activateExtensions ( red , recursionLevel + 1 ) ;
300+ return this . _activateExtensions ( green , startup , recursionLevel + 1 ) . then ( _ => {
301+ return this . _activateExtensions ( red , startup , recursionLevel + 1 ) ;
297302 } ) ;
298303 }
299304
300- private _activateExtension ( extensionDescription : IExtensionDescription ) : TPromise < void > {
305+ private _activateExtension ( extensionDescription : IExtensionDescription , startup : boolean ) : TPromise < void > {
301306 if ( hasOwnProperty . call ( this . _activatedExtensions , extensionDescription . id ) ) {
302307 return TPromise . as ( void 0 ) ;
303308 }
@@ -306,7 +311,7 @@ export class ExtensionsActivator {
306311 return this . _activatingExtensions [ extensionDescription . id ] ;
307312 }
308313
309- this . _activatingExtensions [ extensionDescription . id ] = this . _host . actualActivateExtension ( extensionDescription ) . then ( null , ( err ) => {
314+ this . _activatingExtensions [ extensionDescription . id ] = this . _host . actualActivateExtension ( extensionDescription , startup ) . then ( null , ( err ) => {
310315 this . _host . showMessage ( Severity . Error , nls . localize ( 'activationError' , "Activating extension `{0}` failed: {1}." , extensionDescription . id , err . message ) ) ;
311316 console . error ( 'Activating extension `' + extensionDescription . id + '` failed: ' , err . message ) ;
312317 console . log ( 'Here is the error stack: ' , err . stack ) ;
0 commit comments