@@ -321,6 +321,41 @@ private static void SetIfNotSet(string key, object value, JObject settingsJson)
321321 }
322322 }
323323
324+ private static void SetIfNotSetIgnoreSync ( string key , object value , JObject settingsJson )
325+ {
326+ SetIfNotSet ( key , value , settingsJson ) ;
327+ IgnoreSync ( key , settingsJson ) ;
328+ }
329+
330+ private static void IgnoreSync ( string key , JObject settingsJson )
331+ {
332+ if ( settingsJson . ContainsKey ( "settingsSync.ignoredSettings" ) )
333+ {
334+ JArray ignoredSettings = ( JArray ) settingsJson [ "settingsSync.ignoredSettings" ] ! ;
335+ Boolean keyFound = false ;
336+ foreach ( JToken result in ignoredSettings )
337+ {
338+ if ( result . Value < string > ( ) != null )
339+ {
340+ if ( result . Value < string > ( ) == key )
341+ {
342+ keyFound = true ;
343+ }
344+ }
345+ }
346+ if ( ! keyFound )
347+ {
348+ ignoredSettings . Add ( key ) ;
349+ settingsJson [ "settingsSync.ignoredSettings" ] = ignoredSettings ;
350+ }
351+ }
352+ else
353+ {
354+ JArray ignoredSettings = [ key ] ;
355+ settingsJson [ "settingsSync.ignoredSettings" ] = ignoredSettings ;
356+ }
357+ }
358+
324359 private async Task ConfigureVsCodeSettings ( )
325360 {
326361 if ( ! vsInstallProvider . Model . InstallExtensions ) return ;
@@ -359,14 +394,14 @@ private async Task ConfigureVsCodeSettings()
359394 }
360395
361396 SetIfNotSet ( "java.jdt.ls.java.home" , Path . Combine ( homePath , "jdk" ) , settingsJson ) ;
362- SetIfNotSet ( "extensions.autoUpdate" , false , settingsJson ) ;
363- SetIfNotSet ( "extensions.autoCheckUpdates" , false , settingsJson ) ;
364- SetIfNotSet ( "extensions.ignoreRecommendations" , true , settingsJson ) ;
365- SetIfNotSet ( "extensions.showRecommendationsOnlyOnDemand" , true , settingsJson ) ;
366- SetIfNotSet ( "update.mode" , "none" , settingsJson ) ;
367- SetIfNotSet ( "update.showReleaseNotes" , false , settingsJson ) ;
368- SetIfNotSet ( "java.completion.matchCase" , "off" , settingsJson ) ;
369- SetIfNotSet ( "workbench.secondarySideBar.defaultVisibility" , "hidden" , settingsJson ) ;
397+ SetIfNotSetIgnoreSync ( "extensions.autoUpdate" , false , settingsJson ) ;
398+ SetIfNotSetIgnoreSync ( "extensions.autoCheckUpdates" , false , settingsJson ) ;
399+ SetIfNotSetIgnoreSync ( "extensions.ignoreRecommendations" , true , settingsJson ) ;
400+ SetIfNotSetIgnoreSync ( "extensions.showRecommendationsOnlyOnDemand" , true , settingsJson ) ;
401+ SetIfNotSetIgnoreSync ( "update.mode" , "none" , settingsJson ) ;
402+ SetIfNotSetIgnoreSync ( "update.showReleaseNotes" , false , settingsJson ) ;
403+ SetIfNotSetIgnoreSync ( "java.completion.matchCase" , "off" , settingsJson ) ;
404+ SetIfNotSetIgnoreSync ( "workbench.secondarySideBar.defaultVisibility" , "hidden" , settingsJson ) ;
370405
371406 string os ;
372407 string path_seperator ;
@@ -416,6 +451,7 @@ private async Task ConfigureVsCodeSettings()
416451 }
417452 }
418453 }
454+ IgnoreSync ( "terminal.integrated.env." + os , settingsJson ) ;
419455
420456 if ( settingsJson . ContainsKey ( "java.configuration.runtimes" ) )
421457 {
@@ -463,45 +499,29 @@ private async Task ConfigureVsCodeSettings()
463499 settingsJson [ "java.configuration.runtimes" ] = javaConfigProps ;
464500 }
465501
466- if ( settingsJson . ContainsKey ( "settingsSync.ignoredSettings" ) )
467- {
468- JArray ignoredSettings = ( JArray ) settingsJson [ "settingsSync.ignoredSettings" ] ! ;
469- ignoredSettings . Add ( "extensions.autoUpdate" ) ;
470- ignoredSettings . Add ( "extensions.autoCheckUpdates" ) ;
471- ignoredSettings . Add ( "extensions.ignoreRecommendations" ) ;
472- ignoredSettings . Add ( "extensions.showRecommendationsOnlyOnDemand" ) ;
473- ignoredSettings . Add ( "update.mode" ) ;
474- ignoredSettings . Add ( "java.completion.matchCase" ) ;
475- ignoredSettings . Add ( "terminal.integrated.env.windows" ) ;
476- ignoredSettings . Add ( "java.dependency.enableDependencyCheckup" ) ;
477- ignoredSettings . Add ( "workbench.secondarySideBar.defaultVisibility" ) ;
478- settingsJson [ "settingsSync.ignoredSettings" ] = ignoredSettings ;
479- }
480- else
481- {
482- JArray ignoredSettings = new JArray ( ) ;
483- ignoredSettings . Add ( "extensions.autoUpdate" ) ;
484- ignoredSettings . Add ( "extensions.autoCheckUpdates" ) ;
485- ignoredSettings . Add ( "extensions.ignoreRecommendations" ) ;
486- ignoredSettings . Add ( "extensions.showRecommendationsOnlyOnDemand" ) ;
487- ignoredSettings . Add ( "update.mode" ) ;
488- ignoredSettings . Add ( "java.completion.matchCase" ) ;
489- ignoredSettings . Add ( "terminal.integrated.env.windows" ) ;
490- ignoredSettings . Add ( "java.dependency.enableDependencyCheckup" ) ;
491- ignoredSettings . Add ( "workbench.secondarySideBar.defaultVisibility" ) ;
492- settingsJson [ "settingsSync.ignoredSettings" ] = ignoredSettings ;
493- }
494-
495502 if ( settingsJson . ContainsKey ( "settingsSync.ignoredExtensions" ) )
496503 {
497504 JArray ignoredExtensions = ( JArray ) settingsJson [ "settingsSync.ignoredExtensions" ] ! ;
498- ignoredExtensions . Add ( "wpilibsuite.vscode-wpilib" ) ;
499- settingsJson [ "settingsSync.ignoredExtensions" ] = ignoredExtensions ;
505+ Boolean keyFound = false ;
506+ foreach ( JToken result in ignoredExtensions )
507+ {
508+ if ( result . Value < string > ( ) != null )
509+ {
510+ if ( result . Value < string > ( ) == "wpilibsuite.vscode-wpilib" )
511+ {
512+ keyFound = true ;
513+ }
514+ }
515+ }
516+ if ( ! keyFound )
517+ {
518+ ignoredExtensions . Add ( "wpilibsuite.vscode-wpilib" ) ;
519+ settingsJson [ "settingsSync.ignoredExtensions" ] = ignoredExtensions ;
520+ }
500521 }
501522 else
502523 {
503- JArray ignoredExtensions = new JArray ( ) ;
504- ignoredExtensions . Add ( "wpilibsuite.vscode-wpilib" ) ;
524+ JArray ignoredExtensions = [ "wpilibsuite.vscode-wpilib" ] ;
505525 settingsJson [ "settingsSync.ignoredExtensions" ] = ignoredExtensions ;
506526 }
507527
0 commit comments