private static void MigateSettings(XmlNodeList existingSettings) { var result = new Dictionary <string, ClassificationSettings>(); for (int i = 0; i < existingSettings.Count; ++i) { var item = existingSettings[i]; var name = item.Attributes["Name"]?.Value; if (name is null || result.ContainsKey(name)) { continue; } var classificationSettings = new ClassificationSettings(); classificationSettings.Name = name; var value = item.Attributes["BoldFont"]?.Value; if (!(value is null)) { classificationSettings.IsBold = value.EqualsNoCase("Yes"); } value = item.Attributes["Foreground"]?.Value; // NOTE: doesn't save the color that equals a default value, because it will be correctly set from the default formatting if (TryParseColor(value, out var foreground) && !foreground.Equals(_defaultForeground)) { classificationSettings.Foreground = foreground; } value = item.Attributes["Background"]?.Value; // NOTE: doesn't save the color that equals a default value, because it will be correctly set from the default formatting if (TryParseColor(value, out var background) && !background.Equals(_defaultBackground)) { classificationSettings.Background = background; } if (classificationSettings.IsBold.HasValue || classificationSettings.Foreground.HasValue || classificationSettings.Background.HasValue) { // NOTE: add if and only if a some of values are presented result.Add(classificationSettings.Name, classificationSettings); } } var settings = new EditorSettings { Languages = new List <EditorLanguageSettings> { new EditorLanguageSettings { Name = Languages.CSharp, CurrentClassifications = result.Values.ToList(), Presets = new List <PresetSettings>(), } } }; SettingsManager.SaveSettings(settings, Path.Combine(Paths.CoCoFolder, "CoCo.config")); }
public void MigrateClassification(IReadOnlyDictionary <string, object> properties, ref ClassificationSettings classification) { //NOTE: -> 2.5.0: Migrates a font style if (string.IsNullOrWhiteSpace(classification.FontStyle) && properties.TryGetValue("IsItalic", out var value) && value is bool isItalic) { classification.FontStyle = isItalic ? FontStyleService.Italic : FontStyleService.Normal; } }