File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { inject , injectable } from 'inversify' ;
2+ import { IExtensionSingleActivationService } from '../../activation/types' ;
3+ import { ICommandManager } from '../../common/application/types' ;
4+ import { ContextKey } from '../../common/contextKey' ;
5+ import { traceError } from '../../common/logger' ;
6+ import { IExperimentService } from '../../common/types' ;
7+
8+ @injectable ( )
9+ export class DebuggerDataViewerExperimentEnabler implements IExtensionSingleActivationService {
10+ constructor (
11+ @inject ( ICommandManager ) private readonly commandManager : ICommandManager ,
12+ @inject ( IExperimentService ) private readonly experimentService : IExperimentService
13+ ) { }
14+ public async activate ( ) {
15+ this . activateInternal ( ) . catch ( traceError . bind ( 'Failed to activate debuggerDataViewerExperimentEnabler' ) ) ;
16+ }
17+ private async activateInternal ( ) {
18+ // This context key controls the visibility of the 'View Variable in Data Viewer'
19+ // context menu item from the variable window context menu during a debugging session
20+ const isDataViewerExperimentEnabled = new ContextKey (
21+ 'python.isDebuggerDataViewerExperimentEnabled' ,
22+ this . commandManager
23+ ) ;
24+ await isDataViewerExperimentEnabled . set ( await this . experimentService . inExperiment ( 'debuggerDataViewer' ) ) ;
25+ }
26+ }
Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ import { AsyncDisposableRegistry } from './asyncDisposableRegistry';
3838import { ConfigurationService } from './configuration/service' ;
3939import { CryptoUtils } from './crypto' ;
4040import { EditorUtils } from './editor' ;
41+ import { DebuggerDataViewerExperimentEnabler } from './experiments/debuggerDataViewerExperimentEnabler' ;
4142import { ExperimentsManager } from './experiments/manager' ;
4243import { ExperimentService } from './experiments/service' ;
4344import { FeatureDeprecationManager } from './featureDeprecationManager' ;
@@ -200,6 +201,10 @@ export function registerTypes(serviceManager: IServiceManager) {
200201 IExtensionSingleActivationService ,
201202 ReloadVSCodeCommandHandler
202203 ) ;
204+ serviceManager . addSingleton < IExtensionSingleActivationService > (
205+ IExtensionSingleActivationService ,
206+ DebuggerDataViewerExperimentEnabler
207+ ) ;
203208 serviceManager . addSingleton < IExtensionChannelService > ( IExtensionChannelService , ExtensionChannelService ) ;
204209 serviceManager . addSingleton < IExtensionChannelRule > (
205210 IExtensionChannelRule ,
You can’t perform that action at this time.
0 commit comments