public RuleFinder() { diagnosticAnalyzers = PackagedRuleAssemblies .SelectMany(assembly => assembly.GetTypes()) .Where(t => t.IsSubclassOf(typeof(DiagnosticAnalyzer))) .Where(t => t.GetCustomAttributes <RuleAttribute>().Any()) .ToList(); }
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(); }
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));