@@ -120,7 +120,7 @@ let previousCppSettings: { [key: string]: any } = {};
120
120
/**
121
121
* track settings changes for telemetry
122
122
*/
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 } {
124
124
let settings : vscode . WorkspaceConfiguration = vscode . workspace . getConfiguration ( "C_Cpp" , resource ) ;
125
125
let result : { [ key : string ] : string } = { } ;
126
126
@@ -134,7 +134,41 @@ function collectSettings(filter: (key: string, val: string, settings: vscode.Wor
134
134
}
135
135
if ( filter ( key , val , settings ) ) {
136
136
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
+ }
138
172
if ( result [ key ] . length > maxSettingLengthForTelemetry ) {
139
173
result [ key ] = result [ key ] . substr ( 0 , maxSettingLengthForTelemetry ) + "..." ;
140
174
}
@@ -145,15 +179,15 @@ function collectSettings(filter: (key: string, val: string, settings: vscode.Wor
145
179
}
146
180
147
181
function initializeSettingsCache ( resource : vscode . Uri ) : void {
148
- collectSettings ( ( ) => true , resource ) ;
182
+ collectSettingsForTelemetry ( ( ) => true , resource ) ;
149
183
}
150
184
151
185
function getNonDefaultSettings ( resource : vscode . Uri ) : { [ key : string ] : string } {
152
186
let filter : ( key : string , val : string , settings : vscode . WorkspaceConfiguration ) => boolean = ( key : string , val : string , settings : vscode . WorkspaceConfiguration ) => {
153
187
return val !== settings . inspect ( key ) . defaultValue ;
154
188
} ;
155
189
initializeSettingsCache ( resource ) ;
156
- return collectSettings ( filter , resource ) ;
190
+ return collectSettingsForTelemetry ( filter , resource ) ;
157
191
}
158
192
159
193
interface ClientModel {
@@ -393,7 +427,7 @@ class DefaultClient implements Client {
393
427
let filter : ( key : string , val : string ) => boolean = ( key : string , val : string ) => {
394
428
return ! ( key in previousCppSettings ) || val !== previousCppSettings [ key ] ;
395
429
} ;
396
- let changedSettings : any = collectSettings ( filter , this . RootUri ) ;
430
+ let changedSettings : any = collectSettingsForTelemetry ( filter , this . RootUri ) ;
397
431
398
432
if ( Object . keys ( changedSettings ) . length > 0 ) {
399
433
telemetry . logLanguageServerEvent ( "CppSettingsChange" , changedSettings , null ) ;
0 commit comments