Skip to content

Commit 3512cb3

Browse files
authored
Seanmcm/telemetry fix (#1494)
* Fix telemetry.
1 parent aa0f613 commit 3512cb3

File tree

1 file changed

+39
-5
lines changed

1 file changed

+39
-5
lines changed

Extension/src/LanguageServer/client.ts

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ let previousCppSettings: { [key: string]: any } = {};
120120
/**
121121
* track settings changes for telemetry
122122
*/
123-
function collectSettings(filter: (key: string, val: string, settings: vscode.WorkspaceConfiguration) => boolean, resource: vscode.Uri): { [key: string]: string } {
123+
function collectSettingsForTelemetry(filter: (key: string, val: string, settings: vscode.WorkspaceConfiguration) => boolean, resource: vscode.Uri): { [key: string]: string } {
124124
let settings: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("C_Cpp", resource);
125125
let result: { [key: string]: string } = {};
126126

@@ -134,7 +134,41 @@ function collectSettings(filter: (key: string, val: string, settings: vscode.Wor
134134
}
135135
if (filter(key, val, settings)) {
136136
previousCppSettings[key] = val;
137-
result[key] = (key === "clang_format_path") ? "..." : String(previousCppSettings[key]);
137+
switch (String(key).toLowerCase()) {
138+
case "clang_format_path": {
139+
continue;
140+
}
141+
case "clang_format_style":
142+
case "clang_format_fallbackstyle": {
143+
let newKey: string = String(key) + "2";
144+
if (val) {
145+
switch (String(val).toLowerCase()) {
146+
case "visual studio":
147+
case "llvm":
148+
case "google":
149+
case "chromium":
150+
case "mozilla":
151+
case "webkit":
152+
case "file":
153+
case "none": {
154+
result[newKey] = String(previousCppSettings[key]);
155+
break;
156+
}
157+
default: {
158+
result[newKey] = "...";
159+
break;
160+
}
161+
}
162+
} else {
163+
result[newKey] = "null";
164+
}
165+
break;
166+
}
167+
default: {
168+
result[key] = String(previousCppSettings[key]);
169+
break;
170+
}
171+
}
138172
if (result[key].length > maxSettingLengthForTelemetry) {
139173
result[key] = result[key].substr(0, maxSettingLengthForTelemetry) + "...";
140174
}
@@ -145,15 +179,15 @@ function collectSettings(filter: (key: string, val: string, settings: vscode.Wor
145179
}
146180

147181
function initializeSettingsCache(resource: vscode.Uri): void {
148-
collectSettings(() => true, resource);
182+
collectSettingsForTelemetry(() => true, resource);
149183
}
150184

151185
function getNonDefaultSettings(resource: vscode.Uri): { [key: string]: string } {
152186
let filter: (key: string, val: string, settings: vscode.WorkspaceConfiguration) => boolean = (key: string, val: string, settings: vscode.WorkspaceConfiguration) => {
153187
return val !== settings.inspect(key).defaultValue;
154188
};
155189
initializeSettingsCache(resource);
156-
return collectSettings(filter, resource);
190+
return collectSettingsForTelemetry(filter, resource);
157191
}
158192

159193
interface ClientModel {
@@ -393,7 +427,7 @@ class DefaultClient implements Client {
393427
let filter: (key: string, val: string) => boolean = (key: string, val: string) => {
394428
return !(key in previousCppSettings) || val !== previousCppSettings[key];
395429
};
396-
let changedSettings: any = collectSettings(filter, this.RootUri);
430+
let changedSettings: any = collectSettingsForTelemetry(filter, this.RootUri);
397431

398432
if (Object.keys(changedSettings).length > 0) {
399433
telemetry.logLanguageServerEvent("CppSettingsChange", changedSettings, null);

0 commit comments

Comments
 (0)