@@ -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
147181function initializeSettingsCache ( resource : vscode . Uri ) : void {
148- collectSettings ( ( ) => true , resource ) ;
182+ collectSettingsForTelemetry ( ( ) => true , resource ) ;
149183}
150184
151185function 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
159193interface 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