@@ -2908,12 +2908,16 @@ export class DisableAllAction extends Action {
29082908 this . _register ( this . extensionsWorkbenchService . onChange ( ( ) => this . update ( ) ) ) ;
29092909 }
29102910
2911+ private getExtensionsToDisable ( ) : IExtension [ ] {
2912+ return this . extensionsWorkbenchService . local . filter ( e => e . type === ExtensionType . User && ! ! e . local && this . extensionEnablementService . isEnabled ( e . local ) && this . extensionEnablementService . canChangeEnablement ( e . local ) ) ;
2913+ }
2914+
29112915 private update ( ) : void {
2912- this . enabled = this . extensionsWorkbenchService . local . some ( e => e . type === ExtensionType . User && ! ! e . local && this . extensionEnablementService . isEnabled ( e . local ) && this . extensionEnablementService . canChangeEnablement ( e . local ) ) ;
2916+ this . enabled = this . getExtensionsToDisable ( ) . length > 0 ;
29132917 }
29142918
29152919 run ( ) : Promise < any > {
2916- return this . extensionsWorkbenchService . setEnablement ( this . extensionsWorkbenchService . local . filter ( e => e . type === ExtensionType . User ) , EnablementState . DisabledGlobally ) ;
2920+ return this . extensionsWorkbenchService . setEnablement ( this . getExtensionsToDisable ( ) , EnablementState . DisabledGlobally ) ;
29172921 }
29182922}
29192923
@@ -2934,12 +2938,16 @@ export class DisableAllWorkspaceAction extends Action {
29342938 this . _register ( this . extensionsWorkbenchService . onChange ( ( ) => this . update ( ) , this ) ) ;
29352939 }
29362940
2941+ private getExtensionsToDisable ( ) : IExtension [ ] {
2942+ return this . extensionsWorkbenchService . local . filter ( e => e . type === ExtensionType . User && ! ! e . local && this . extensionEnablementService . isEnabled ( e . local ) && this . extensionEnablementService . canChangeEnablement ( e . local ) ) ;
2943+ }
2944+
29372945 private update ( ) : void {
2938- this . enabled = this . workspaceContextService . getWorkbenchState ( ) !== WorkbenchState . EMPTY && this . extensionsWorkbenchService . local . some ( e => e . type === ExtensionType . User && ! ! e . local && this . extensionEnablementService . isEnabled ( e . local ) && this . extensionEnablementService . canChangeEnablement ( e . local ) ) ;
2946+ this . enabled = this . workspaceContextService . getWorkbenchState ( ) !== WorkbenchState . EMPTY && this . getExtensionsToDisable ( ) . length > 0 ;
29392947 }
29402948
29412949 run ( ) : Promise < any > {
2942- return this . extensionsWorkbenchService . setEnablement ( this . extensionsWorkbenchService . local . filter ( e => e . type === ExtensionType . User ) , EnablementState . DisabledWorkspace ) ;
2950+ return this . extensionsWorkbenchService . setEnablement ( this . getExtensionsToDisable ( ) , EnablementState . DisabledWorkspace ) ;
29432951 }
29442952}
29452953
@@ -2958,12 +2966,16 @@ export class EnableAllAction extends Action {
29582966 this . _register ( this . extensionsWorkbenchService . onChange ( ( ) => this . update ( ) ) ) ;
29592967 }
29602968
2969+ private getExtensionsToEnable ( ) : IExtension [ ] {
2970+ return this . extensionsWorkbenchService . local . filter ( e => ! ! e . local && this . extensionEnablementService . canChangeEnablement ( e . local ) && ! this . extensionEnablementService . isEnabled ( e . local ) ) ;
2971+ }
2972+
29612973 private update ( ) : void {
2962- this . enabled = this . extensionsWorkbenchService . local . some ( e => ! ! e . local && this . extensionEnablementService . canChangeEnablement ( e . local ) && ! this . extensionEnablementService . isEnabled ( e . local ) ) ;
2974+ this . enabled = this . getExtensionsToEnable ( ) . length > 0 ;
29632975 }
29642976
29652977 run ( ) : Promise < any > {
2966- return this . extensionsWorkbenchService . setEnablement ( this . extensionsWorkbenchService . local , EnablementState . EnabledGlobally ) ;
2978+ return this . extensionsWorkbenchService . setEnablement ( this . getExtensionsToEnable ( ) , EnablementState . EnabledGlobally ) ;
29672979 }
29682980}
29692981
@@ -2984,12 +2996,16 @@ export class EnableAllWorkspaceAction extends Action {
29842996 this . _register ( this . workspaceContextService . onDidChangeWorkbenchState ( ( ) => this . update ( ) , this ) ) ;
29852997 }
29862998
2999+ private getExtensionsToEnable ( ) : IExtension [ ] {
3000+ return this . extensionsWorkbenchService . local . filter ( e => ! ! e . local && this . extensionEnablementService . canChangeEnablement ( e . local ) && ! this . extensionEnablementService . isEnabled ( e . local ) ) ;
3001+ }
3002+
29873003 private update ( ) : void {
2988- this . enabled = this . workspaceContextService . getWorkbenchState ( ) !== WorkbenchState . EMPTY && this . extensionsWorkbenchService . local . some ( e => ! ! e . local && this . extensionEnablementService . canChangeEnablement ( e . local ) && ! this . extensionEnablementService . isEnabled ( e . local ) ) ;
3004+ this . enabled = this . workspaceContextService . getWorkbenchState ( ) !== WorkbenchState . EMPTY && this . getExtensionsToEnable ( ) . length > 0 ;
29893005 }
29903006
29913007 run ( ) : Promise < any > {
2992- return this . extensionsWorkbenchService . setEnablement ( this . extensionsWorkbenchService . local , EnablementState . EnabledWorkspace ) ;
3008+ return this . extensionsWorkbenchService . setEnablement ( this . getExtensionsToEnable ( ) , EnablementState . EnabledWorkspace ) ;
29933009 }
29943010}
29953011
0 commit comments