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

Side by Side Diff: client/lib/item.dart

Issue 149573008: Factor out the anchor prefix to easily allow switching to #! (Closed) Base URL: https://github.com/dart-lang/dartdoc-viewer.git@master
Patch Set: Fixes from review Created 6 years, 10 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
« no previous file with comments | « no previous file | client/lib/location.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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 category_item; 5 library category_item;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:convert'; 8 import 'dart:convert';
9 9
10 import 'package:dartdoc_viewer/data.dart'; 10 import 'package:dartdoc_viewer/data.dart';
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 208
209 /// Adds the comment from [item] to [this]. 209 /// Adds the comment from [item] to [this].
210 void addInheritedComment(Item item) {} 210 void addInheritedComment(Item item) {}
211 211
212 /// Denotes whether this [Item] is inherited from another [Item] or not. 212 /// Denotes whether this [Item] is inherited from another [Item] or not.
213 @observable bool get isInherited => false; 213 @observable bool get isInherited => false;
214 214
215 /// Creates a link for the href attribute of an [AnchorElement]. 215 /// Creates a link for the href attribute of an [AnchorElement].
216 String get linkHref => qualifiedName; 216 String get linkHref => qualifiedName;
217 217
218 /// [linkHref] but with the leading # separator.
219 String get prefixedLinkHref => locationPrefixed(linkHref);
220
218 /// The [DocsLocation] for our URI. 221 /// The [DocsLocation] for our URI.
219 DocsLocation get location => new DocsLocation(qualifiedName); 222 DocsLocation get location => new DocsLocation(qualifiedName);
220 223
221 /// The link to an anchor within a larger page, if appropriate. So 224 /// The link to an anchor within a larger page, if appropriate. So
222 /// e.g. instead of `dart-core.Object.toString`, 225 /// e.g. instead of `dart-core.Object.toString`,
223 /// `dart-core.Object@id_toString` 226 /// `dart-core.Object@id_toString`
224 DocsLocation get anchorHrefLocation { 227 DocsLocation get anchorHrefLocation {
225 var basic = localLocation; 228 var basic = localLocation;
226 var parent = basic.parentLocation; 229 var parent = basic.parentLocation;
227 if (parent.isEmpty) return parent; 230 if (parent.isEmpty) return parent;
228 parent.anchor = parent.toHash(hashDecoratedName); 231 parent.anchor = parent.toHash(hashDecoratedName);
229 return parent; 232 return parent;
230 } 233 }
231 234
232 /// A location based on the actual page we're in, rather than our inherited 235 /// A location based on the actual page we're in, rather than our inherited
233 /// location. e.g. `dart-async.Future.noSuchMethod` rather than 236 /// location. e.g. `dart-async.Future.noSuchMethod` rather than
234 /// the original method location of `dart-core.Object.noSuchMethod`. 237 /// the original method location of `dart-core.Object.noSuchMethod`.
235 /// For non-inherited items, this will just be the [location]. 238 /// For non-inherited items, this will just be the [location].
236 DocsLocation get localLocation => location; 239 DocsLocation get localLocation => location;
237 240
238 String get anchorHref => anchorHrefLocation.withAnchor; 241 String get anchorHref => anchorHrefLocation.withAnchor;
239 242
243 /// [anchorHref] but with the leading # separator.
244 String get prefixedAnchorHref => locationPrefixed(anchorHref);
245
240 bool get isLoaded => true; 246 bool get isLoaded => true;
241 247
242 Item memberNamed(String name, {Function orElse : nothing}) => nothing(); 248 Item memberNamed(String name, {Function orElse : nothing}) => nothing();
243 249
244 Item get owner => _owner == null ? 250 Item get owner => _owner == null ?
245 _owner = pageIndex[location.parentQualifiedName] : _owner; 251 _owner = pageIndex[location.parentQualifiedName] : _owner;
246 252
247 /// Return true if [possibleOwner] is anywhere in our chain of owners. 253 /// Return true if [possibleOwner] is anywhere in our chain of owners.
248 bool isOwnedBy(Item possibleOwner) { 254 bool isOwnedBy(Item possibleOwner) {
249 if (owner == null || possibleOwner == null) return false; 255 if (owner == null || possibleOwner == null) return false;
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 } 1048 }
1043 1049
1044 1050
1045 bool _boolFor(String key, Map input) { 1051 bool _boolFor(String key, Map input) {
1046 var value = input[key]; 1052 var value = input[key];
1047 if (value == true || value == 'true') return true; 1053 if (value == true || value == 'true') return true;
1048 if (value == null || value == false || value == 'false') return false; 1054 if (value == null || value == false || value == 'false') return false;
1049 throw new FormatException("Invalid format, expected boolean key: $key" 1055 throw new FormatException("Invalid format, expected boolean key: $key"
1050 " value: $value"); 1056 " value: $value");
1051 } 1057 }
OLDNEW
« no previous file with comments | « no previous file | client/lib/location.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698