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

Side by Side Diff: pkg/dartdoc/search.dart

Issue 10919146: Get rid of a lot of () for getters. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « pkg/dartdoc/mirrors/util.dart ('k') | pkg/fixnum/int64.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 /** 5 /**
6 * [SearchText] represent the search field text. The text is viewed in three 6 * [SearchText] represent the search field text. The text is viewed in three
7 * ways: [text] holds the original search text, used for performing 7 * ways: [text] holds the original search text, used for performing
8 * case-sensitive matches, [lowerCase] holds the lower-case search text, used 8 * case-sensitive matches, [lowerCase] holds the lower-case search text, used
9 * for performing case-insenstive matches, [camelCase] holds a camel-case 9 * for performing case-insenstive matches, [camelCase] holds a camel-case
10 * interpretation of the search text, used to order matches in camel-case. 10 * interpretation of the search text, used to order matches in camel-case.
11 */ 11 */
12 class SearchText { 12 class SearchText {
13 final String text; 13 final String text;
14 final String lowerCase; 14 final String lowerCase;
15 final String camelCase; 15 final String camelCase;
16 16
17 SearchText(String searchText) 17 SearchText(String searchText)
18 : text = searchText, 18 : text = searchText,
19 lowerCase = searchText.toLowerCase(), 19 lowerCase = searchText.toLowerCase(),
20 camelCase = searchText.isEmpty() ? '' 20 camelCase = searchText.isEmpty() ? ''
21 : '${searchText.substring(0, 1).toUpperCase()}' 21 : '${searchText.substring(0, 1).toUpperCase()}'
22 '${searchText.substring(1)}'; 22 '${searchText.substring(1)}';
23 23
24 int get length() => text.length; 24 int get length => text.length;
25 25
26 bool isEmpty() => length == 0; 26 bool isEmpty() => length == 0;
27 } 27 }
28 28
29 /** 29 /**
30 * [StringMatch] represents the case-insensitive matching of [searchText] as a 30 * [StringMatch] represents the case-insensitive matching of [searchText] as a
31 * substring within a [text]. 31 * substring within a [text].
32 */ 32 */
33 class StringMatch { 33 class StringMatch {
34 final SearchText searchText; 34 final SearchText searchText;
35 final String text; 35 final String text;
36 final int matchOffset; 36 final int matchOffset;
37 final int matchEnd; 37 final int matchEnd;
38 38
39 StringMatch(this.searchText, 39 StringMatch(this.searchText,
40 this.text, this.matchOffset, this.matchEnd); 40 this.text, this.matchOffset, this.matchEnd);
41 41
42 /** 42 /**
43 * Returns the HTML representation of the match. 43 * Returns the HTML representation of the match.
44 */ 44 */
45 String toHtml() { 45 String toHtml() {
46 return '${text.substring(0, matchOffset)}' 46 return '${text.substring(0, matchOffset)}'
47 '<span class="drop-down-link-highlight">$matchText</span>' 47 '<span class="drop-down-link-highlight">$matchText</span>'
48 '${text.substring(matchEnd)}'; 48 '${text.substring(matchEnd)}';
49 } 49 }
50 50
51 String get matchText() => 51 String get matchText =>
52 text.substring(matchOffset, matchEnd); 52 text.substring(matchOffset, matchEnd);
53 53
54 /** 54 /**
55 * Is [:true:] iff [searchText] matches the full [text] case-sensitively. 55 * Is [:true:] iff [searchText] matches the full [text] case-sensitively.
56 */ 56 */
57 bool get isFullMatch() => text == searchText.text; 57 bool get isFullMatch => text == searchText.text;
58 58
59 /** 59 /**
60 * Is [:true:] iff [searchText] matches a substring of [text] 60 * Is [:true:] iff [searchText] matches a substring of [text]
61 * case-sensitively. 61 * case-sensitively.
62 */ 62 */
63 bool get isExactMatch() => matchText == searchText.text; 63 bool get isExactMatch => matchText == searchText.text;
64 64
65 /** 65 /**
66 * Is [:true:] iff [searchText] matches a substring of [text] when 66 * Is [:true:] iff [searchText] matches a substring of [text] when
67 * [searchText] is interpreted as camel case. 67 * [searchText] is interpreted as camel case.
68 */ 68 */
69 bool get isCamelCaseMatch() => matchText == searchText.camelCase; 69 bool get isCamelCaseMatch => matchText == searchText.camelCase;
70 } 70 }
71 71
72 /** 72 /**
73 * [Result] represents a match of the search text on a library, type or member. 73 * [Result] represents a match of the search text on a library, type or member.
74 */ 74 */
75 class Result { 75 class Result {
76 final StringMatch prefix; 76 final StringMatch prefix;
77 final StringMatch match; 77 final StringMatch match;
78 78
79 final String library; 79 final String library;
80 final String type; 80 final String type;
81 final String args; 81 final String args;
82 final String kind; 82 final String kind;
83 final String url; 83 final String url;
84 84
85 TableRowElement row; 85 TableRowElement row;
86 86
87 Result(this.match, this.kind, this.url, 87 Result(this.match, this.kind, this.url,
88 [this.library, this.type, String args, this.prefix]) 88 [this.library, this.type, String args, this.prefix])
89 : this.args = args != null ? '&lt;$args&gt;' : ''; 89 : this.args = args != null ? '&lt;$args&gt;' : '';
90 90
91 bool get isTopLevel() => prefix == null && type == null; 91 bool get isTopLevel => prefix == null && type == null;
92 92
93 void addRow(TableElement table) { 93 void addRow(TableElement table) {
94 if (row != null) return; 94 if (row != null) return;
95 95
96 clickHandler(Event event) { 96 clickHandler(Event event) {
97 window.location.href = url; 97 window.location.href = url;
98 hideDropDown(); 98 hideDropDown();
99 } 99 }
100 100
101 row = table.insertRow(table.rows.length); 101 row = table.insertRow(table.rows.length);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 // Sort type alphabetically. 209 // Sort type alphabetically.
210 // TODO(4805): Use [:type.compareToIgnoreCase] when supported. 210 // TODO(4805): Use [:type.compareToIgnoreCase] when supported.
211 result = a.type.toLowerCase().compareTo(b.type.toLowerCase()); 211 result = a.type.toLowerCase().compareTo(b.type.toLowerCase());
212 if (result != 0) return result; 212 if (result != 0) return result;
213 } 213 }
214 214
215 // Sort match alphabetically. 215 // Sort match alphabetically.
216 // TODO(4805): Use [:text.compareToIgnoreCase] when supported. 216 // TODO(4805): Use [:text.compareToIgnoreCase] when supported.
217 return a.match.text.toLowerCase().compareTo(b.match.text.toLowerCase()); 217 return a.match.text.toLowerCase().compareTo(b.match.text.toLowerCase());
218 } 218 }
OLDNEW
« no previous file with comments | « pkg/dartdoc/mirrors/util.dart ('k') | pkg/fixnum/int64.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698