in src/utils.ts [693:720]
export function reportExtensionSettings(telemetryReporter: Readonly<TelemetryReporter>): void {
const extensionSettingsList = Object.entries(vscode.workspace.getConfiguration(SETTINGS_STORE_NAME)).splice(4) as Array<ExtensionSettings>;
const settings = vscode.workspace.getConfiguration(SETTINGS_STORE_NAME);
const changedSettingsMap: Map<string, string> = new Map<string, string>();
for (const currentSetting of extensionSettingsList) {
const settingName: string = currentSetting[0];
const settingValue: boolean | string | {[key: string]: string} | undefined = currentSetting[1];
const settingInspect = settings.inspect(settingName);
if (settingInspect) {
const defaultValue = settingInspect.defaultValue;
if (settingValue !== undefined && settingValue !== defaultValue) {
if (defaultValue && typeof defaultValue === 'object' && typeof settingValue === 'object') {
for (const [key, value] of Object.entries(defaultValue)) {
if (settingValue[key] !== value) {
changedSettingsMap.set(settingName, JSON.stringify(settingValue));
break;
}
}
} else {
changedSettingsMap.set(settingName, settingValue.toString());
}
}
}
}
const changedSettingsObject = {};
Object.assign(changedSettingsObject, ...[...changedSettingsMap.entries()].map(([k, v]) => ({[k]: v})));
telemetryReporter.sendTelemetryEvent('user/settingsChangedAtLaunch', changedSettingsObject);
}