| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 linter.src.rules; | 5 library linter.src.rules; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:linter/src/config.dart'; | 9 import 'package:linter/src/config.dart'; |
| 10 import 'package:linter/src/linter.dart'; | 10 import 'package:linter/src/linter.dart'; |
| 11 import 'package:linter/src/rules/always_declare_return_types.dart'; | 11 import 'package:linter/src/rules/always_declare_return_types.dart'; |
| 12 import 'package:linter/src/rules/always_specify_types.dart'; | 12 import 'package:linter/src/rules/always_specify_types.dart'; |
| 13 import 'package:linter/src/rules/camel_case_types.dart'; | 13 import 'package:linter/src/rules/camel_case_types.dart'; |
| 14 import 'package:linter/src/rules/constant_identifier_names.dart'; | 14 import 'package:linter/src/rules/constant_identifier_names.dart'; |
| 15 import 'package:linter/src/rules/empty_constructor_bodies.dart'; | 15 import 'package:linter/src/rules/empty_constructor_bodies.dart'; |
| 16 import 'package:linter/src/rules/implementation_imports.dart'; | 16 import 'package:linter/src/rules/implementation_imports.dart'; |
| 17 import 'package:linter/src/rules/library_names.dart'; | 17 import 'package:linter/src/rules/library_names.dart'; |
| 18 import 'package:linter/src/rules/library_prefixes.dart'; | 18 import 'package:linter/src/rules/library_prefixes.dart'; |
| 19 import 'package:linter/src/rules/non_constant_identifier_names.dart'; | 19 import 'package:linter/src/rules/non_constant_identifier_names.dart'; |
| 20 import 'package:linter/src/rules/one_member_abstracts.dart'; | 20 import 'package:linter/src/rules/one_member_abstracts.dart'; |
| 21 import 'package:linter/src/rules/package_api_docs.dart'; | 21 import 'package:linter/src/rules/package_api_docs.dart'; |
| 22 import 'package:linter/src/rules/package_prefixed_library_names.dart'; | 22 import 'package:linter/src/rules/package_prefixed_library_names.dart'; |
| 23 import 'package:linter/src/rules/prefer_is_not_empty.dart'; | 23 import 'package:linter/src/rules/prefer_is_not_empty.dart'; |
| 24 import 'package:linter/src/rules/pub/package_names.dart'; | 24 import 'package:linter/src/rules/pub/package_names.dart'; |
| 25 import 'package:linter/src/rules/slash_for_doc_comments.dart'; | 25 import 'package:linter/src/rules/slash_for_doc_comments.dart'; |
| 26 import 'package:linter/src/rules/super_goes_last.dart'; | 26 import 'package:linter/src/rules/super_goes_last.dart'; |
| 27 import 'package:linter/src/rules/type_annotate_public_apis.dart'; |
| 27 import 'package:linter/src/rules/type_init_formals.dart'; | 28 import 'package:linter/src/rules/type_init_formals.dart'; |
| 28 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart'; | 29 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart'; |
| 29 import 'package:linter/src/rules/unnecessary_getters_setters.dart'; | 30 import 'package:linter/src/rules/unnecessary_getters_setters.dart'; |
| 30 | 31 |
| 31 final Registry ruleRegistry = new Registry() | 32 final Registry ruleRegistry = new Registry() |
| 32 ..register(new AlwaysDeclareReturnTypes()) | 33 ..register(new AlwaysDeclareReturnTypes()) |
| 33 ..register(new AlwaysSpecifyTypes()) | 34 ..register(new AlwaysSpecifyTypes()) |
| 34 ..register(new CamelCaseTypes()) | 35 ..register(new CamelCaseTypes()) |
| 35 ..register(new ConstantIdentifierNames()) | 36 ..register(new ConstantIdentifierNames()) |
| 36 ..register(new EmptyConstructorBodies()) | 37 ..register(new EmptyConstructorBodies()) |
| 37 ..register(new ImplementationImports()) | 38 ..register(new ImplementationImports()) |
| 38 ..register(new LibraryNames()) | 39 ..register(new LibraryNames()) |
| 39 ..register(new LibraryPrefixes()) | 40 ..register(new LibraryPrefixes()) |
| 40 ..register(new NonConstantIdentifierNames()) | 41 ..register(new NonConstantIdentifierNames()) |
| 41 ..register(new PreferIsNotEmpty()) | 42 ..register(new PreferIsNotEmpty()) |
| 42 ..register(new OneMemberAbstracts()) | 43 ..register(new OneMemberAbstracts()) |
| 43 ..register(new PackageApiDocs()) | 44 ..register(new PackageApiDocs()) |
| 44 ..register(new PackagePrefixedLibraryNames()) | 45 ..register(new PackagePrefixedLibraryNames()) |
| 45 ..register(new PubPackageNames()) | 46 ..register(new PubPackageNames()) |
| 46 ..register(new SlashForDocComments()) | 47 ..register(new SlashForDocComments()) |
| 47 ..register(new SuperGoesLast()) | 48 ..register(new SuperGoesLast()) |
| 48 ..register(new TypeInitFormals()) | 49 ..register(new TypeInitFormals()) |
| 50 ..register(new TypeAnnotatePublicApis()) |
| 49 ..register(new UnnecessaryBraceInStringInterp()) | 51 ..register(new UnnecessaryBraceInStringInterp()) |
| 50 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35 | 52 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35 |
| 51 //..register(new UnnecessaryGetters()) | 53 //..register(new UnnecessaryGetters()) |
| 52 ..register(new UnnecessaryGettersSetters()); | 54 ..register(new UnnecessaryGettersSetters()); |
| 53 | 55 |
| 54 /// Registry of contributed lint rules. | 56 /// Registry of contributed lint rules. |
| 55 class Registry extends Object with IterableMixin<LintRule> { | 57 class Registry extends Object with IterableMixin<LintRule> { |
| 56 Map<String, LintRule> _ruleMap = <String, LintRule>{}; | 58 Map<String, LintRule> _ruleMap = <String, LintRule>{}; |
| 57 | 59 |
| 58 @override | 60 @override |
| 59 Iterator<LintRule> get iterator => _ruleMap.values.iterator; | 61 Iterator<LintRule> get iterator => _ruleMap.values.iterator; |
| 60 | 62 |
| 61 Iterable<LintRule> get rules => _ruleMap.values; | 63 Iterable<LintRule> get rules => _ruleMap.values; |
| 62 | 64 |
| 63 LintRule operator [](String key) => _ruleMap[key]; | 65 LintRule operator [](String key) => _ruleMap[key]; |
| 64 | 66 |
| 65 /// All lint rules explicitly enabled by the given [config]. | 67 /// All lint rules explicitly enabled by the given [config]. |
| 66 /// | 68 /// |
| 67 /// For example: | 69 /// For example: |
| 68 /// my_rule: true | 70 /// my_rule: true |
| 69 /// | 71 /// |
| 70 /// enables `my_rule`. | 72 /// enables `my_rule`. |
| 71 /// | 73 /// |
| 72 /// Unspecified rules are treated as disabled by default. | 74 /// Unspecified rules are treated as disabled by default. |
| 73 Iterable<LintRule> enabled(LintConfig config) => rules | 75 Iterable<LintRule> enabled(LintConfig config) => rules |
| 74 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name))); | 76 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name))); |
| 75 | 77 |
| 76 void register(LintRule rule) { | 78 void register(LintRule rule) { |
| 77 _ruleMap[rule.name] = rule; | 79 _ruleMap[rule.name] = rule; |
| 78 } | 80 } |
| 79 } | 81 } |
| OLD | NEW |