public ComplexityAnalysisOptionPage()

in src/dotnet/PowerToys.CyclomaticComplexity/Options/ComplexityAnalysisOptionPage.cs [42:71]


    public ComplexityAnalysisOptionPage(
      Lifetime lifetime,
      OptionsPageContext optionsPageContext,
      OptionsSettingsSmartContext optionsSettingsSmartContext,
      ILanguages languages,
      ILanguageManager languageManager)
      : base(lifetime, optionsPageContext, optionsSettingsSmartContext)
    {
      AddText("Specify cyclomatic complexity thresholds:");

      var thresholds = OptionsSettingsSmartContext.Schema.GetIndexedEntry((CyclomaticComplexityAnalysisSettings s) => s.Thresholds);

      var list = new List<LanguageSpecificComplexityProperty>();
      foreach (var languageType in languages.All.Where(languageManager.HasService<IControlFlowBuilder>).OrderBy(GetPresentableName))
      {
        var presentableName = GetPresentableName(languageType);
        var thing = new LanguageSpecificComplexityProperty(lifetime, optionsSettingsSmartContext, thresholds, languageType.Name, presentableName, CyclomaticComplexityAnalysisSettings.DefaultThreshold);
        list.Add(thing);
      }

      var treeGrid = list.GetBeList(lifetime,
        (l, e, p) => new List<BeControl>
        {
          e.Name.GetBeLabel(),
          e.Threshold.GetBeSpinner(lifetime, min: 1)
        },
        new TreeConfiguration(new []{"Language,*", "Threshold,auto"}));
      
      AddControl(treeGrid, isStar: true);
    }