@@ -25,26 +25,35 @@ class ConfigBuilder {
25
25
String excludesRootFolder, {
26
26
Iterable <Metric <num >>? classMetrics,
27
27
Iterable <Metric <num >>? functionMetrics,
28
- }) =>
29
- LintAnalysisConfig (
30
- prepareExcludes (config.excludePatterns, excludesRootFolder),
31
- getRulesById (config.rules),
32
- prepareExcludes (config.excludeForRulesPatterns, excludesRootFolder),
33
- getPatternsById (config),
34
- classMetrics ??
35
- getMetrics (
36
- config: config.metrics,
37
- measuredType: EntityType .classEntity,
38
- ),
39
- functionMetrics ??
40
- getMetrics (
41
- config: config.metrics,
42
- measuredType: EntityType .methodEntity,
43
- ),
44
- prepareExcludes (config.excludeForMetricsPatterns, excludesRootFolder),
45
- config.metrics,
46
- excludesRootFolder,
47
- );
28
+ }) {
29
+ final patterns = getPatternsById (config);
30
+ final patternsDependencies = patterns
31
+ .map ((pattern) => pattern.dependentMetricIds)
32
+ .expand ((e) => e)
33
+ .toSet ();
34
+
35
+ return LintAnalysisConfig (
36
+ prepareExcludes (config.excludePatterns, excludesRootFolder),
37
+ getRulesById (config.rules),
38
+ prepareExcludes (config.excludeForRulesPatterns, excludesRootFolder),
39
+ patterns,
40
+ classMetrics ??
41
+ getMetrics (
42
+ config: config.metrics,
43
+ patternsDependencies: patternsDependencies,
44
+ measuredType: EntityType .classEntity,
45
+ ),
46
+ functionMetrics ??
47
+ getMetrics (
48
+ config: config.metrics,
49
+ patternsDependencies: patternsDependencies,
50
+ measuredType: EntityType .methodEntity,
51
+ ),
52
+ prepareExcludes (config.excludeForMetricsPatterns, excludesRootFolder),
53
+ config.metrics,
54
+ excludesRootFolder,
55
+ );
56
+ }
48
57
49
58
static UnusedFilesConfig getUnusedFilesConfigFromArgs (
50
59
Iterable <String > excludePatterns,
0 commit comments