@@ -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,6 +499,32 @@ private async Task ConfigureVsCodeSettings()
463499 settingsJson [ "java.configuration.runtimes" ] = javaConfigProps ;
464500 }
465501
502+ if ( settingsJson . ContainsKey ( "settingsSync.ignoredExtensions" ) )
503+ {
504+ JArray ignoredExtensions = ( JArray ) settingsJson [ "settingsSync.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+ }
521+ }
522+ else
523+ {
524+ JArray ignoredExtensions = [ "wpilibsuite.vscode-wpilib" ] ;
525+ settingsJson [ "settingsSync.ignoredExtensions" ] = ignoredExtensions ;
526+ }
527+
466528 var serialized = JsonConvert . SerializeObject ( settingsJson , Formatting . Indented ) ;
467529 await File . WriteAllTextAsync ( settingsFile , serialized ) ;
468530 }
0 commit comments