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;
     }
 }