Index: dart_style/lib/src/rule/combinator.dart |
diff --git a/dart_style/lib/src/rule/combinator.dart b/dart_style/lib/src/rule/combinator.dart |
deleted file mode 100644 |
index 62ddfdb3981f31691e5731a889d706474e495778..0000000000000000000000000000000000000000 |
--- a/dart_style/lib/src/rule/combinator.dart |
+++ /dev/null |
@@ -1,123 +0,0 @@ |
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library dart_style.src.rule.combinator; |
- |
-import '../chunk.dart'; |
-import 'rule.dart'; |
- |
-/// Handles a list of "combinators". |
-/// |
-/// A combinator is a keyword followed by a list of nodes used to modify some |
-/// declaration. It's used for actual hide and show combinators as well as |
-/// "with" and "implements" clauses in class declarations. |
-/// |
-/// Combinators can be split in a few different ways: |
-/// |
-/// // All on one line: |
-/// import 'animals.dart' show Ant hide Cat; |
-/// |
-/// // Wrap before each keyword: |
-/// import 'animals.dart' |
-/// show Ant, Baboon |
-/// hide Cat; |
-/// |
-/// // Wrap either or both of the name lists: |
-/// import 'animals.dart' |
-/// show |
-/// Ant, |
-/// Baboon |
-/// hide Cat; |
-/// |
-/// These are not allowed: |
-/// |
-/// // Wrap list but not keyword: |
-/// import 'animals.dart' show |
-/// Ant, |
-/// Baboon |
-/// hide Cat; |
-/// |
-/// // Wrap one keyword but not both: |
-/// import 'animals.dart' |
-/// show Ant, Baboon hide Cat; |
-/// |
-/// This ensures that when any wrapping occurs, the keywords are always at |
-/// the beginning of the line. |
-class CombinatorRule extends Rule { |
- /// The set of chunks before the combinators. |
- final Set<Chunk> _combinators = new Set(); |
- |
- /// A list of sets of chunks prior to each name in a combinator. |
- /// |
- /// The outer list is a list of combinators (i.e. "hide", "show", etc.). Each |
- /// inner set is the set of names for that combinator. |
- final List<Set<Chunk>> _names = []; |
- |
- int get numValues { |
- var count = 2; // No wrapping, or wrap just before each combinator. |
- |
- if (_names.length == 2) { |
- count += 3; // Wrap first set of names, second, or both. |
- } else { |
- assert(_names.length == 1); |
- count++; // Wrap the names. |
- } |
- |
- return count; |
- } |
- |
- /// Adds a new combinator to the list of combinators. |
- /// |
- /// This must be called before adding any names. |
- void addCombinator(Chunk chunk) { |
- _combinators.add(chunk); |
- _names.add(new Set()); |
- } |
- |
- /// Adds a chunk prior to a name to the current combinator. |
- void addName(Chunk chunk) { |
- _names.last.add(chunk); |
- } |
- |
- bool isSplit(int value, Chunk chunk) { |
- switch (value) { |
- case 0: |
- // Don't split at all. |
- return false; |
- |
- case 1: |
- // Just split at the combinators. |
- return _combinators.contains(chunk); |
- |
- case 2: |
- // Split at the combinators and the first set of names. |
- return _isCombinatorSplit(0, chunk); |
- |
- case 3: |
- // If there is two combinators, just split at the combinators and the |
- // second set of names. |
- if (_names.length == 2) { |
- // Two sets of combinators, so just split at the combinators and the |
- // second set of names. |
- return _isCombinatorSplit(1, chunk); |
- } |
- |
- // Split everything. |
- return true; |
- |
- case 4: |
- return true; |
- } |
- |
- throw "unreachable"; |
- } |
- |
- /// Returns `true` if [chunk] is for a combinator or a name in the |
- /// combinator at index [combinator]. |
- bool _isCombinatorSplit(int combinator, Chunk chunk) { |
- return _combinators.contains(chunk) || _names[combinator].contains(chunk); |
- } |
- |
- String toString() => "Comb${super.toString()}"; |
-} |