Skip to content

Commit f0bef8d

Browse files
authored
Refactor experiment variable (#10717)
* Refactor experiment variable * address feedback. * fix lint
1 parent fec8a4e commit f0bef8d

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

Extension/src/LanguageServer/ui.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import { NewUI } from './ui_new';
1111
import { ReferencesCommandMode, referencesCommandModeToString } from './references';
1212
import { getCustomConfigProviders, CustomConfigurationProviderCollection, isSameProviderExtensionId } from './customProviders';
1313
import * as telemetry from '../telemetry';
14-
import { IExperimentationService } from 'tas-client';
15-
import { CppSettings } from './settings';
1614

1715
nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })();
1816
const localize: nls.LocalizeFunc = nls.loadMessageBundle();
@@ -489,14 +487,8 @@ export async function getUI(): Promise<UI> {
489487

490488
async function _getUI(): Promise<UI> {
491489
if (!ui) {
492-
const experimentationService: IExperimentationService | undefined = await telemetry.getExperimentationService();
493-
if (experimentationService !== undefined) {
494-
const settings: CppSettings = new CppSettings();
495-
const useNewUI: boolean | undefined = experimentationService.getTreatmentVariable<boolean>("vscode", "ShowLangStatBar");
496-
ui = useNewUI || settings.experimentalFeatures ? new NewUI() : new OldUI();
497-
} else {
498-
ui = new NewUI();
499-
}
490+
const useNewUI: boolean = await telemetry.showLanguageStatusExperiment();
491+
ui = useNewUI ? new NewUI() : new OldUI();
500492
}
501493
return ui;
502494
}

Extension/src/telemetry.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import TelemetryReporter from '@vscode/extension-telemetry';
88
import { getExperimentationServiceAsync, IExperimentationService, IExperimentationTelemetry, TargetPopulation } from 'vscode-tas-client';
9+
import { CppSettings } from './LanguageServer/settings';
910
import * as util from './common';
1011

1112
interface IPackageInfo {
@@ -76,6 +77,15 @@ export function getExperimentationService(): Promise<IExperimentationService> |
7677
return initializationPromise;
7778
}
7879

80+
export async function showLanguageStatusExperiment(): Promise<boolean> {
81+
if (new CppSettings().experimentalFeatures) {
82+
return true;
83+
}
84+
const experimentationService: IExperimentationService | undefined = await getExperimentationService();
85+
const useNewUI: boolean | undefined = experimentationService?.getTreatmentVariable<boolean>("vscode", "ShowLangStatBar");
86+
return useNewUI ?? false;
87+
}
88+
7989
export async function deactivate(): Promise<void> {
8090
if (initializationPromise) {
8191
try {

0 commit comments

Comments
 (0)