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

Side by Side Diff: client/lib/components/parameters.dart

Issue 273473002: Display function signatures instead of just "Function". (Closed) Base URL: https://github.com/dart-lang/dartdoc-viewer.git@master
Patch Set: Created 6 years, 7 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 | « client/lib/components/method.html ('k') | client/lib/components/parameters.html » ('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 web.parameters; 5 library web.parameters;
6 6
7 import 'dart:html'; 7 import 'dart:html';
8 8
9 import 'package:polymer/polymer.dart'; 9 import 'package:polymer/polymer.dart';
10 10
11 import 'package:dartdoc_viewer/item.dart'; 11 import 'package:dartdoc_viewer/item.dart';
12 import 'package:dartdoc_viewer/member.dart'; 12 import 'package:dartdoc_viewer/member.dart';
13 13
14 import 'closure.dart';
14 import 'type.dart'; 15 import 'type.dart';
15 16
16 @CustomTag("dartdoc-parameter") 17 @CustomTag("dartdoc-parameter")
17 class ParameterElement extends DartdocElement { 18 class ParameterElement extends DartdocElement {
18 @published List<Parameter> parameters = const []; 19 @published List<Parameter> parameters = const [];
19 20
21
22 factory ParameterElement() => new Element.tag('dartdoc-parameter');
23
20 ParameterElement.created() : super.created(); 24 ParameterElement.created() : super.created();
21 25
22 void parametersChanged() { 26 void parametersChanged() {
23 var required = [], optional = []; 27 var required = [], optional = [];
24 if (parameters != null) { 28 if (parameters != null) {
25 for (var p in parameters) { 29 for (var p in parameters) {
26 (p.isOptional ? optional : required).add(p); 30 (p.isOptional ? optional : required).add(p);
27 } 31 }
28 } 32 }
29 33
(...skipping 15 matching lines...) Expand all
45 outerSpan.appendText(optionalOpeningDelimiter); 49 outerSpan.appendText(optionalOpeningDelimiter);
46 } 50 }
47 for (var element in elements) { 51 for (var element in elements) {
48 // TODO(kevmoo): Fix annotation rendering for paramaters - Issue 18133 52 // TODO(kevmoo): Fix annotation rendering for paramaters - Issue 18133
49 // Skip dynamic as an outer parameter type (but not as generic) 53 // Skip dynamic as an outer parameter type (but not as generic)
50 var space = ''; 54 var space = '';
51 if (!element.type.isDynamic) { 55 if (!element.type.isDynamic) {
52 outerSpan.append(new TypeElement()..type = element.type); 56 outerSpan.append(new TypeElement()..type = element.type);
53 space = ' '; 57 space = ' ';
54 } 58 }
55 var parameterName = new AnchorElement() 59
56 ..text = element.name
57 ..href = element.prefixedAnchorHref
58 ..id = element.anchorHrefLocation.anchor;
59 outerSpan.appendText(space); 60 outerSpan.appendText(space);
60 outerSpan.append(parameterName); 61 if (element.functionDeclaration != null) {
62 outerSpan.append(
63 new ClosureElement()..closure = element.functionDeclaration);
64 } else {
65 var parameterName = new AnchorElement()
66 ..text = element.name
67 ..href = element.prefixedAnchorHref
68 ..id = element.anchorHrefLocation.anchor;
69
70 outerSpan.append(parameterName);
71 }
61 outerSpan.appendText(element.decoration); 72 outerSpan.appendText(element.decoration);
73
62 if (className == 'required' && optional.isNotEmpty || 74 if (className == 'required' && optional.isNotEmpty ||
63 element != elements.last) { 75 element != elements.last) {
64 outerSpan.appendText(', '); 76 outerSpan.appendText(', ');
65 } 77 }
66 } 78 }
67 if (className == 'optional') { 79 if (className == 'optional') {
68 var optionalClosingDelimiter = 80 var optionalClosingDelimiter =
69 optional.isEmpty ? '' : optional.first.isNamed ? '}' : ']'; 81 optional.isEmpty ? '' : optional.first.isNamed ? '}' : ']';
70 outerSpan.appendText(optionalClosingDelimiter); 82 outerSpan.appendText(optionalClosingDelimiter);
71 } 83 }
72 this.append(outerSpan); 84 this.append(outerSpan);
73 } 85 }
74 } 86 }
OLDNEW
« no previous file with comments | « client/lib/components/method.html ('k') | client/lib/components/parameters.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698