Skip to content

Commit 0faadde

Browse files
committed
Refactor to ignore sync when setting values
1 parent 639ecad commit 0faadde

File tree

1 file changed

+61
-41
lines changed

1 file changed

+61
-41
lines changed

WPILibInstaller-Avalonia/ViewModels/InstallPageViewModel.cs

Lines changed: 61 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)