@@ -401,20 +401,17 @@ export abstract class AbstractExtensionService extends Disposable implements IEx
401401 }
402402
403403 private async _activateAddedExtensionIfNeeded ( extensionDescription : IExtensionDescription ) : Promise < void > {
404- let shouldActivate = false ;
405404 let shouldActivateReason : string | null = null ;
406405 let hasWorkspaceContains = false ;
407406 const activationEvents = this . _activationEventReader . readActivationEvents ( extensionDescription ) ;
408407 for ( const activationEvent of activationEvents ) {
409408 if ( this . _allRequestedActivateEvents . has ( activationEvent ) ) {
410409 // This activation event was fired before the extension was added
411- shouldActivate = true ;
412410 shouldActivateReason = activationEvent ;
413411 break ;
414412 }
415413
416414 if ( activationEvent === '*' ) {
417- shouldActivate = true ;
418415 shouldActivateReason = activationEvent ;
419416 break ;
420417 }
@@ -424,17 +421,12 @@ export abstract class AbstractExtensionService extends Disposable implements IEx
424421 }
425422
426423 if ( activationEvent === 'onStartupFinished' ) {
427- shouldActivate = true ;
428424 shouldActivateReason = activationEvent ;
429425 break ;
430426 }
431427 }
432428
433- if ( shouldActivate ) {
434- await Promise . all (
435- this . _extensionHostManagers . map ( extHostManager => extHostManager . activate ( extensionDescription . identifier , { startup : false , extensionId : extensionDescription . identifier , activationEvent : shouldActivateReason ! } ) )
436- ) . then ( ( ) => { } ) ;
437- } else if ( hasWorkspaceContains ) {
429+ if ( ! shouldActivateReason && hasWorkspaceContains ) {
438430 const workspace = await this . _contextService . getCompleteWorkspace ( ) ;
439431 const forceUsingSearch = ! ! this . _environmentService . remoteAuthority ;
440432 const host : IWorkspaceContainsActivationHost = {
@@ -446,13 +438,15 @@ export abstract class AbstractExtensionService extends Disposable implements IEx
446438 } ;
447439
448440 const result = await checkActivateWorkspaceContainsExtension ( host , extensionDescription ) ;
449- if ( ! result ) {
450- return ;
441+ if ( result ) {
442+ shouldActivateReason = result . activationEvent ;
451443 }
444+ }
452445
446+ if ( shouldActivateReason ) {
453447 await Promise . all (
454- this . _extensionHostManagers . map ( extHostManager => extHostManager . activate ( extensionDescription . identifier , { startup : false , extensionId : extensionDescription . identifier , activationEvent : result . activationEvent } ) )
455- ) . then ( ( ) => { } ) ;
448+ this . _extensionHostManagers . map ( extHostManager => extHostManager . activate ( extensionDescription . identifier , { startup : false , extensionId : extensionDescription . identifier , activationEvent : shouldActivateReason } ) )
449+ ) ;
456450 }
457451 }
458452
0 commit comments