Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(504)

Unified Diff: pkg/analyzer/lib/src/lint/registry.dart

Issue 2568463004: Add an alternate mechanism for registering default lints (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/lint/registry.dart
diff --git a/pkg/analyzer/lib/src/lint/registry.dart b/pkg/analyzer/lib/src/lint/registry.dart
index 20ce0367efcde1c8de0713ed4fbab4a15ec2d616..172767ba598e2f68d70fb65bc8c080cfab55045b 100644
--- a/pkg/analyzer/lib/src/lint/registry.dart
+++ b/pkg/analyzer/lib/src/lint/registry.dart
@@ -8,7 +8,7 @@ import 'package:analyzer/src/lint/config.dart';
import 'package:analyzer/src/lint/linter.dart';
/**
- * Registry of contributed lint rules.
+ * Registry of lint rules.
*/
class Registry extends Object with IterableMixin<LintRule> {
/**
@@ -16,27 +16,60 @@ class Registry extends Object with IterableMixin<LintRule> {
*/
static final Registry ruleRegistry = new Registry();
+ /**
+ * A table mapping rule names to rules.
+ */
Map<String, LintRule> _ruleMap = <String, LintRule>{};
+ /**
+ * A list of the default lint rules.
+ */
+ List<LintRule> _defaultRules = <LintRule>[];
+
+ /**
+ * Return a list of the default lint rules.
+ */
+ List<LintRule> get defaultRules => _defaultRules;
+
@override
Iterator<LintRule> get iterator => _ruleMap.values.iterator;
+ /**
+ * Return a list of the rules that are defined.
+ */
Iterable<LintRule> get rules => _ruleMap.values;
- LintRule operator [](String key) => _ruleMap[key];
+ /**
+ * Return the lint rule with the given [name].
+ */
+ LintRule operator [](String name) => _ruleMap[name];
- /// All lint rules explicitly enabled by the given [config].
- ///
- /// For example:
- /// my_rule: true
- ///
- /// enables `my_rule`.
- ///
- /// Unspecified rules are treated as disabled by default.
+ /**
+ * Return a list of the lint rules explicitly enabled by the given [config].
+ *
+ * For example:
+ * my_rule: true
+ *
+ * enables `my_rule`.
+ *
+ * Unspecified rules are treated as disabled by default.
+ */
Iterable<LintRule> enabled(LintConfig config) => rules
.where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name)));
+ /**
+ * Add the given lint [rule] to this registry.
+ */
void register(LintRule rule) {
_ruleMap[rule.name] = rule;
}
+
+ /**
+ * Add the given lint [rule] to this registry and mark it as being a default
+ * lint (one that will be run if lints are requested but no rules are enabled.
+ */
+ void registerDefault(LintRule rule) {
+ register(rule);
+ _defaultRules.add(rule);
+ }
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698