OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library services.src.linter; | 5 library services.src.linter; |
6 | 6 |
7 import 'package:analyzer/analyzer.dart'; | 7 import 'package:analyzer/analyzer.dart'; |
8 import 'package:analyzer/plugin/options.dart'; | 8 import 'package:analyzer/plugin/options.dart'; |
9 import 'package:analyzer/src/lint/registry.dart'; | 9 import 'package:linter/src/rules.dart'; |
10 import 'package:yaml/yaml.dart'; | 10 import 'package:yaml/yaml.dart'; |
11 | 11 |
12 /** | 12 /** |
13 * An error code indicating an undefined lint rule. | 13 * An error code indicating an undefined lint rule. |
14 * | 14 * |
15 * Parameters: | 15 * Parameters: |
16 * 0: the rule name | 16 * 0: the rule name |
17 */ | 17 */ |
18 const AnalysisOptionsWarningCode UNDEFINED_LINT_WARNING = | 18 const AnalysisOptionsWarningCode UNDEFINED_LINT_WARNING = |
19 const AnalysisOptionsWarningCode( | 19 const AnalysisOptionsWarningCode( |
(...skipping 11 matching lines...) Expand all Loading... |
31 if (node is YamlMap) { | 31 if (node is YamlMap) { |
32 var rules = node.nodes[rulesKey]; | 32 var rules = node.nodes[rulesKey]; |
33 validateRules(rules, reporter); | 33 validateRules(rules, reporter); |
34 } | 34 } |
35 return errors; | 35 return errors; |
36 } | 36 } |
37 | 37 |
38 validateRules(dynamic rules, ErrorReporter reporter) { | 38 validateRules(dynamic rules, ErrorReporter reporter) { |
39 if (rules is YamlList) { | 39 if (rules is YamlList) { |
40 //TODO(pq): migrate this to a proper API once there is one. | 40 //TODO(pq): migrate this to a proper API once there is one. |
41 Iterable<String> registeredLints = | 41 Iterable<String> registeredLints = ruleRegistry.map((r) => r.name); |
42 Registry.ruleRegistry.map((r) => r.name); | |
43 rules.nodes.forEach((YamlNode ruleNode) { | 42 rules.nodes.forEach((YamlNode ruleNode) { |
44 Object value = ruleNode.value; | 43 Object value = ruleNode.value; |
45 if (value != null && !registeredLints.contains(value)) { | 44 if (value != null && !registeredLints.contains(value)) { |
46 reporter.reportErrorForSpan( | 45 reporter.reportErrorForSpan( |
47 UNDEFINED_LINT_WARNING, ruleNode.span, [value]); | 46 UNDEFINED_LINT_WARNING, ruleNode.span, [value]); |
48 } | 47 } |
49 }); | 48 }); |
50 } | 49 } |
51 } | 50 } |
52 } | 51 } |
OLD | NEW |