@@ -23,7 +23,7 @@ export async function initDaemon(context: vscode.ExtensionContext) {
2323 }
2424}
2525
26- async function checkJavaExtActivated ( _context : vscode . ExtensionContext ) : Promise < boolean > {
26+ async function checkJavaExtActivated ( context : vscode . ExtensionContext ) : Promise < boolean > {
2727 const javaExt = vscode . extensions . getExtension ( "redhat.java" ) ;
2828 if ( ! javaExt ) {
2929 return false ;
@@ -51,6 +51,7 @@ async function checkJavaExtActivated(_context: vscode.ExtensionContext): Promise
5151 }
5252
5353 traceSessionStatus ( javaExt ) ;
54+ traceJavaSettingUsage ( context , javaExt ) ;
5455 traceJavaExtension ( javaExt ) ;
5556 traceLSPPerformance ( javaExt ) ;
5657
@@ -232,6 +233,39 @@ async function traceJavaExtension(javaExt: vscode.Extension<any>) {
232233 } ) ;
233234}
234235
236+ function traceJavaSettingUsage ( context : vscode . ExtensionContext , javaExt : vscode . Extension < any > ) {
237+ const javaExtVersion = javaExt . packageJSON ?. version ;
238+ const isPreReleaseVersion = / ^ \d + \. \d + \. \d { 10 } / . test ( javaExtVersion ) ;
239+ const javaConfigNames : Set < string > = new Set ( ) ;
240+ const configDefinition = javaExt . packageJSON ?. contributes ?. configuration ;
241+ if ( Array . isArray ( configDefinition ) ) {
242+ for ( const category of configDefinition ) {
243+ for ( const key of Object . keys ( category . properties || { } ) ) {
244+ javaConfigNames . add ( key ) ;
245+ }
246+ }
247+ } else {
248+ for ( const key of Object . keys ( configDefinition ?. properties || { } ) ) {
249+ javaConfigNames . add ( key ) ;
250+ }
251+ }
252+
253+ context . subscriptions . push ( vscode . workspace . onDidChangeConfiguration ( ( event ) => {
254+ if ( event . affectsConfiguration ( "java" ) ) {
255+ for ( const key of javaConfigNames ) {
256+ if ( event . affectsConfiguration ( key ) ) {
257+ sendInfo ( "" , {
258+ operationName : "changeJavaSettings" ,
259+ arg : key ,
260+ javaversion : javaExtVersion ,
261+ remark : isPreReleaseVersion ? "pre-release" : "stable" ,
262+ } ) ;
263+ }
264+ }
265+ }
266+ } ) ) ;
267+ }
268+
235269function traceSessionStatus ( javaExt : vscode . Extension < any > ) {
236270 let initHandled : boolean = false ;
237271 javaExt . exports ?. onDidRequestEnd ?.( ( traceEvent : any ) => {
0 commit comments