Skip to content

Commit ad0f632

Browse files
authored
debuggerDataViewer experiment (microsoft#14530)
1 parent 1d8d749 commit ad0f632

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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+
}

src/client/common/serviceRegistry.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import { AsyncDisposableRegistry } from './asyncDisposableRegistry';
3838
import { ConfigurationService } from './configuration/service';
3939
import { CryptoUtils } from './crypto';
4040
import { EditorUtils } from './editor';
41+
import { DebuggerDataViewerExperimentEnabler } from './experiments/debuggerDataViewerExperimentEnabler';
4142
import { ExperimentsManager } from './experiments/manager';
4243
import { ExperimentService } from './experiments/service';
4344
import { 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,

0 commit comments

Comments
 (0)