Ejemplo n.º 1
0
 private async Task DetectFileStyleAsync(string content, CancellationToken cancelToken)
 {
     await Task.Run(() =>
     {
         foreach (EditorStyles style in Enum.GetValues(typeof(EditorStyles)))
         {
             if (style == EditorStyles.Custom)
             {
                 continue;
             }
             var levenshtein = GetLevenshteinAfterFormat(content, style, FormatOptionsProvider.GetDefaultOptionsForStyle(style));
             lock (defaultLock)
             {
                 if (detectedPredefinedStyles.ContainsKey(style))
                 {
                     detectedPredefinedStyles[style] += levenshtein;
                 }
                 else
                 {
                     detectedPredefinedStyles.Add(style, levenshtein);
                 }
             }
         }
     }, cancelToken);
 }
Ejemplo n.º 2
0
 private async Task DetectFileOptionsAsync(string content, EditorStyles style, CancellationToken cancelToken)
 {
     await Task.Run(() =>
     {
         var formatOptions = FormatOptionsProvider.GetDefaultOptionsForStyle(style);
         foreach (var option in formatOptions)
         {
             if (cancelToken.IsCancellationRequested)
             {
                 break;
             }
             SetFormatOption(option, content, style, formatOptions);
         }
         allFoundOptions.Add(formatOptions);
     }, cancelToken);
 }
Ejemplo n.º 3
0
        private List <IFormatOption> AggregateOptions()
        {
            var defaultOptions = FormatOptionsProvider.GetDefaultOptionsForStyle(detectedStyle);

            for (int i = 0; i < defaultOptions.Count; i++)
            {
                var toggleChanged         = (0, ToggleValues.False);
                var inputChanged          = new Dictionary <string, int>();
                var multipleToggleChanged = false;
                foreach (var option in allFoundOptions)
                {
                    switch (option[i])
                    {
                    case FormatOptionToggleModel foundToggleModel:
                        var defaultToggle = (FormatOptionToggleModel)defaultOptions[i];
                        if (foundToggleModel.BooleanCombobox != defaultToggle.BooleanCombobox)
                        {
                            toggleChanged.Item1++;
                            toggleChanged.Item2 = foundToggleModel.BooleanCombobox;
                        }
                        break;

                    case FormatOptionInputModel foundInputModel:
                        var defaultInput = (FormatOptionInputModel)defaultOptions[i];
                        if (foundInputModel.Input != defaultInput.Input)
                        {
                            if (inputChanged.ContainsKey(foundInputModel.Input))
                            {
                                inputChanged[foundInputModel.Input]++;
                            }
                            else
                            {
                                inputChanged.Add(foundInputModel.Input, 1);
                            }
                        }
                        break;

                    case FormatOptionMultipleToggleModel foundMultipleToggleModel:
                        if (multipleToggleChanged)
                        {
                            break;
                        }
                        var defaultToggleFlags = ((FormatOptionMultipleToggleModel)defaultOptions[i]).ToggleFlags;
                        var toggleflags        = foundMultipleToggleModel.ToggleFlags;
                        for (int j = 0; j < defaultToggleFlags.Count; j++)
                        {
                            if (toggleflags[j].Value != defaultToggleFlags[j].Value)
                            {
                                multipleToggleChanged = true;
                                foundMultipleToggleModel.IsModifed = true;
                                defaultOptions[i] = foundMultipleToggleModel;
                                break;
                            }
                        }
                        break;

                    default:
                        break;
                    }
                }
                if (toggleChanged.Item1 > 0)
                {
                    var optionToggle = (FormatOptionToggleModel)defaultOptions[i];
                    optionToggle.BooleanCombobox = toggleChanged.Item2;
                    optionToggle.IsModifed       = true;
                    continue;
                }

                if (inputChanged.Count > 0)
                {
                    var input       = inputChanged.OrderBy(e => e.Value).Last();
                    var inputToogle = (FormatOptionInputModel)defaultOptions[i];
                    inputToogle.Input     = input.Key;
                    inputToogle.IsModifed = true;
                }
            }
            return(defaultOptions);
        }