Esempio n. 1
0
 public RuleFinder()
 {
     diagnosticAnalyzers = PackagedRuleAssemblies
                           .SelectMany(assembly => assembly.GetTypes())
                           .Where(t => t.IsSubclassOf(typeof(DiagnosticAnalyzer)))
                           .Where(t => t.GetCustomAttributes <RuleAttribute>().Any())
                           .ToList();
 }
Esempio n. 2
0
        public RuleFinder()
        {
            var all = PackagedRuleAssemblies
                      .SelectMany(assembly => assembly.GetTypes())
                      .Where(t => t.IsSubclassOf(typeof(DiagnosticAnalyzer)) || typeof(IRuleFactory).IsAssignableFrom(t))
                      .ToArray();

            AllAnalyzerTypes     = all.Where(x => x.GetCustomAttributes <RuleAttribute>().Any()).ToList();
            UtilityAnalyzerTypes = all.Where(x => typeof(UtilityAnalyzerBase).IsAssignableFrom(x) && x.GetCustomAttributes <DiagnosticAnalyzerAttribute>().Any()).ToList();
        }
Esempio n. 3
0
 internal static IEnumerable <SonarDiagnosticAnalyzer> GetAnalyzers(AnalyzerLanguage language) =>
 PackagedRuleAssemblies.SelectMany(assembly => assembly.GetTypes())
 .Where(type => !type.IsAbstract && typeof(SonarDiagnosticAnalyzer).IsAssignableFrom(type) && GetTargetLanguages(type).IsAlso(language))
 .Select(type => (SonarDiagnosticAnalyzer)Activator.CreateInstance(type));