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

Side by Side Diff: lib/src/rules.dart

Issue 2159123003: New `whitespace_around_ops` lint (#249). (Closed) Base URL: https://github.com/dart-lang/linter.git@master
Patch Set: Created 4 years, 5 months 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 unified diff | Download patch
OLDNEW
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';
(...skipping 10 matching lines...) Expand all
21 import 'package:linter/src/rules/close_sinks.dart'; 21 import 'package:linter/src/rules/close_sinks.dart';
22 import 'package:linter/src/rules/comment_references.dart'; 22 import 'package:linter/src/rules/comment_references.dart';
23 import 'package:linter/src/rules/constant_identifier_names.dart'; 23 import 'package:linter/src/rules/constant_identifier_names.dart';
24 import 'package:linter/src/rules/control_flow_in_finally.dart'; 24 import 'package:linter/src/rules/control_flow_in_finally.dart';
25 import 'package:linter/src/rules/empty_catches.dart'; 25 import 'package:linter/src/rules/empty_catches.dart';
26 import 'package:linter/src/rules/empty_constructor_bodies.dart'; 26 import 'package:linter/src/rules/empty_constructor_bodies.dart';
27 import 'package:linter/src/rules/empty_statements.dart'; 27 import 'package:linter/src/rules/empty_statements.dart';
28 import 'package:linter/src/rules/hash_and_equals.dart'; 28 import 'package:linter/src/rules/hash_and_equals.dart';
29 import 'package:linter/src/rules/implementation_imports.dart'; 29 import 'package:linter/src/rules/implementation_imports.dart';
30 import 'package:linter/src/rules/iterable_contains_unrelated_type.dart'; 30 import 'package:linter/src/rules/iterable_contains_unrelated_type.dart';
31 import 'package:linter/src/rules/list_remove_unrelated_type.dart';
32 import 'package:linter/src/rules/library_names.dart'; 31 import 'package:linter/src/rules/library_names.dart';
33 import 'package:linter/src/rules/library_prefixes.dart'; 32 import 'package:linter/src/rules/library_prefixes.dart';
33 import 'package:linter/src/rules/list_remove_unrelated_type.dart';
34 import 'package:linter/src/rules/non_constant_identifier_names.dart'; 34 import 'package:linter/src/rules/non_constant_identifier_names.dart';
35 import 'package:linter/src/rules/one_member_abstracts.dart'; 35 import 'package:linter/src/rules/one_member_abstracts.dart';
36 import 'package:linter/src/rules/only_throw_errors.dart'; 36 import 'package:linter/src/rules/only_throw_errors.dart';
37 import 'package:linter/src/rules/overridden_fields.dart'; 37 import 'package:linter/src/rules/overridden_fields.dart';
38 import 'package:linter/src/rules/package_api_docs.dart'; 38 import 'package:linter/src/rules/package_api_docs.dart';
39 import 'package:linter/src/rules/package_prefixed_library_names.dart'; 39 import 'package:linter/src/rules/package_prefixed_library_names.dart';
40 import 'package:linter/src/rules/prefer_is_not_empty.dart'; 40 import 'package:linter/src/rules/prefer_is_not_empty.dart';
41 import 'package:linter/src/rules/pub/package_names.dart'; 41 import 'package:linter/src/rules/pub/package_names.dart';
42 import 'package:linter/src/rules/public_member_api_docs.dart'; 42 import 'package:linter/src/rules/public_member_api_docs.dart';
43 import 'package:linter/src/rules/slash_for_doc_comments.dart'; 43 import 'package:linter/src/rules/slash_for_doc_comments.dart';
44 import 'package:linter/src/rules/sort_constructors_first.dart'; 44 import 'package:linter/src/rules/sort_constructors_first.dart';
45 import 'package:linter/src/rules/sort_unnamed_constructors_first.dart'; 45 import 'package:linter/src/rules/sort_unnamed_constructors_first.dart';
46 import 'package:linter/src/rules/super_goes_last.dart'; 46 import 'package:linter/src/rules/super_goes_last.dart';
47 import 'package:linter/src/rules/test_types_in_equals.dart'; 47 import 'package:linter/src/rules/test_types_in_equals.dart';
48 import 'package:linter/src/rules/throw_in_finally.dart'; 48 import 'package:linter/src/rules/throw_in_finally.dart';
49 import 'package:linter/src/rules/type_annotate_public_apis.dart'; 49 import 'package:linter/src/rules/type_annotate_public_apis.dart';
50 import 'package:linter/src/rules/type_init_formals.dart'; 50 import 'package:linter/src/rules/type_init_formals.dart';
51 import 'package:linter/src/rules/unawaited_futures.dart'; 51 import 'package:linter/src/rules/unawaited_futures.dart';
52 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart'; 52 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart';
53 import 'package:linter/src/rules/unnecessary_getters_setters.dart'; 53 import 'package:linter/src/rules/unnecessary_getters_setters.dart';
54 import 'package:linter/src/rules/unrelated_type_equality_checks.dart'; 54 import 'package:linter/src/rules/unrelated_type_equality_checks.dart';
55 import 'package:linter/src/rules/whitespace_around_ops.dart';
55 56
56 final Registry ruleRegistry = new Registry() 57 final Registry ruleRegistry = new Registry()
57 ..register(new AlwaysDeclareReturnTypes()) 58 ..register(new AlwaysDeclareReturnTypes())
58 ..register(new AlwaysSpecifyTypes()) 59 ..register(new AlwaysSpecifyTypes())
59 ..register(new AnnotateOverrides()) 60 ..register(new AnnotateOverrides())
60 ..register(new AvoidAs()) 61 ..register(new AvoidAs())
61 ..register(new AvoidEmptyElse()) 62 ..register(new AvoidEmptyElse())
62 ..register(new AvoidReturnTypesOnSetters()) 63 ..register(new AvoidReturnTypesOnSetters())
63 ..register(new AvoidInitToNull()) 64 ..register(new AvoidInitToNull())
64 ..register(new AwaitOnlyFutures()) 65 ..register(new AwaitOnlyFutures())
(...skipping 27 matching lines...) Expand all
92 ..register(new SortConstructorsFirst()) 93 ..register(new SortConstructorsFirst())
93 ..register(new SortUnnamedConstructorsFirst()) 94 ..register(new SortUnnamedConstructorsFirst())
94 ..register(new SuperGoesLast()) 95 ..register(new SuperGoesLast())
95 ..register(new TypeInitFormals()) 96 ..register(new TypeInitFormals())
96 ..register(new TypeAnnotatePublicApis()) 97 ..register(new TypeAnnotatePublicApis())
97 ..register(new UnawaitedFutures()) 98 ..register(new UnawaitedFutures())
98 ..register(new UnnecessaryBraceInStringInterp()) 99 ..register(new UnnecessaryBraceInStringInterp())
99 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35 100 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35
100 //..register(new UnnecessaryGetters()) 101 //..register(new UnnecessaryGetters())
101 ..register(new UnnecessaryGettersSetters()) 102 ..register(new UnnecessaryGettersSetters())
102 ..register(new UnrelatedTypeEqualityChecks()); 103 ..register(new UnrelatedTypeEqualityChecks())
103 104 ..register(new WhitespaceAroundOps());
104 105
105 /// Registry of contributed lint rules. 106 /// Registry of contributed lint rules.
106 class Registry extends Object with IterableMixin<LintRule> { 107 class Registry extends Object with IterableMixin<LintRule> {
107 Map<String, LintRule> _ruleMap = <String, LintRule>{}; 108 Map<String, LintRule> _ruleMap = <String, LintRule>{};
108 109
109 @override 110 @override
110 Iterator<LintRule> get iterator => _ruleMap.values.iterator; 111 Iterator<LintRule> get iterator => _ruleMap.values.iterator;
111 112
112 Iterable<LintRule> get rules => _ruleMap.values; 113 Iterable<LintRule> get rules => _ruleMap.values;
113 114
114 LintRule operator [](String key) => _ruleMap[key]; 115 LintRule operator [](String key) => _ruleMap[key];
115 116
116 /// All lint rules explicitly enabled by the given [config]. 117 /// All lint rules explicitly enabled by the given [config].
117 /// 118 ///
118 /// For example: 119 /// For example:
119 /// my_rule: true 120 /// my_rule: true
120 /// 121 ///
121 /// enables `my_rule`. 122 /// enables `my_rule`.
122 /// 123 ///
123 /// Unspecified rules are treated as disabled by default. 124 /// Unspecified rules are treated as disabled by default.
124 Iterable<LintRule> enabled(LintConfig config) => rules 125 Iterable<LintRule> enabled(LintConfig config) => rules
125 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name))); 126 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name)));
126 127
127 void register(LintRule rule) { 128 void register(LintRule rule) {
128 _ruleMap[rule.name] = rule; 129 _ruleMap[rule.name] = rule;
129 } 130 }
130 } 131 }
OLDNEW
« no previous file with comments | « no previous file | lib/src/rules/whitespace_around_ops.dart » ('j') | lib/src/rules/whitespace_around_ops.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698