@@ -11,7 +11,7 @@ import 'package:analyzer/dart/element/element.dart';
11
11
import 'package:analyzer/dart/element/nullability_suffix.dart' ;
12
12
import 'package:analyzer/dart/element/type.dart' ;
13
13
import 'package:dartdoc/src/model/model.dart' ;
14
- import 'package:dartdoc/src/render/parameter_renderer .dart' ;
14
+ import 'package:dartdoc/src/render/element_type_renderer .dart' ;
15
15
16
16
/// Base class representing a type in Dartdoc. It wraps a [DartType] , and
17
17
/// may link to a [ModelElement] .
@@ -143,13 +143,8 @@ class FunctionTypeElementType extends UndefinedElementType {
143
143
@override
144
144
String get linkedName {
145
145
if (_linkedName == null ) {
146
- StringBuffer buf = StringBuffer ();
147
- buf.write ('${returnType .linkedName } ' );
148
- buf.write ('${nameWithGenerics }' );
149
- buf.write ('<span class="signature">' );
150
- buf.write ('(${ParameterRendererHtml ().renderLinkedParams (parameters )})' );
151
- buf.write ('</span>' );
152
- _linkedName = buf.toString ();
146
+ _linkedName =
147
+ FunctionTypeElementTypeRendererHtml ().renderLinkedName (this );
153
148
}
154
149
return _linkedName;
155
150
}
@@ -162,17 +157,8 @@ class FunctionTypeElementType extends UndefinedElementType {
162
157
@override
163
158
String get nameWithGenerics {
164
159
if (_nameWithGenerics == null ) {
165
- StringBuffer buf = StringBuffer ();
166
- buf.write (name);
167
- if ((type as FunctionType ).typeFormals.isNotEmpty) {
168
- if (! typeFormals.every ((t) => t.name == 'dynamic' )) {
169
- buf.write ('<<wbr><span class="type-parameter">' );
170
- buf.writeAll (typeFormals.map ((t) => t.name),
171
- '</span>, <span class="type-parameter">' );
172
- buf.write ('</span>>' );
173
- }
174
- }
175
- _nameWithGenerics = buf.toString ();
160
+ _nameWithGenerics =
161
+ FunctionTypeElementTypeRendererHtml ().renderNameWithGenerics (this );
176
162
}
177
163
return _nameWithGenerics;
178
164
}
@@ -198,21 +184,8 @@ class ParameterizedElementType extends DefinedElementType {
198
184
@override
199
185
String get linkedName {
200
186
if (_linkedName == null ) {
201
- StringBuffer buf = StringBuffer ();
202
-
203
- buf.write (element.linkedName);
204
-
205
- if (! typeArguments.every ((t) => t.name == 'dynamic' ) &&
206
- typeArguments.isNotEmpty) {
207
- buf.write ('<span class="signature">' );
208
- buf.write ('<<wbr><span class="type-parameter">' );
209
- buf.writeAll (typeArguments.map ((t) => t.linkedName),
210
- '</span>, <span class="type-parameter">' );
211
- buf.write ('</span>>' );
212
- buf.write ('</span>' );
213
- }
214
-
215
- _linkedName = buf.toString ();
187
+ _linkedName =
188
+ ParameterizedElementTypeRendererHtml ().renderLinkedName (this );
216
189
}
217
190
return _linkedName;
218
191
}
@@ -221,18 +194,8 @@ class ParameterizedElementType extends DefinedElementType {
221
194
@override
222
195
String get nameWithGenerics {
223
196
if (_nameWithGenerics == null ) {
224
- StringBuffer buf = StringBuffer ();
225
-
226
- buf.write (element.name);
227
-
228
- if (! typeArguments.every ((t) => t.name == 'dynamic' ) &&
229
- typeArguments.isNotEmpty) {
230
- buf.write ('<<wbr><span class="type-parameter">' );
231
- buf.writeAll (typeArguments.map ((t) => t.nameWithGenerics),
232
- '</span>, <span class="type-parameter">' );
233
- buf.write ('</span>>' );
234
- }
235
- _nameWithGenerics = buf.toString ();
197
+ _nameWithGenerics =
198
+ ParameterizedElementTypeRendererHtml ().renderNameWithGenerics (this );
236
199
}
237
200
return _nameWithGenerics;
238
201
}
@@ -246,17 +209,12 @@ class TypeParameterElementType extends DefinedElementType {
246
209
@override
247
210
String get linkedName => name;
248
211
249
- String _nameWithGenerics;
250
212
@override
251
- String get nameWithGenerics {
252
- if (_nameWithGenerics == null ) {
253
- _nameWithGenerics = name;
254
- }
255
- return _nameWithGenerics;
256
- }
213
+ String get nameWithGenerics => name;
257
214
258
215
@override
259
216
ClassElement get _boundClassElement => interfaceType.element;
217
+
260
218
@override
261
219
InterfaceType get interfaceType => (type as TypeParameterType ).bound;
262
220
}
@@ -417,9 +375,13 @@ class CallableElementType extends ParameterizedElementType
417
375
418
376
@override
419
377
String get linkedName {
420
- if (name != null && name.isNotEmpty) return super .linkedName;
421
- return '${nameWithGenerics }(${ParameterRendererHtml (showNames : false ).renderLinkedParams (element .parameters ).trim ()}) → ${returnType .linkedName }' ;
378
+ if (_linkedName == null ) {
379
+ _linkedName = CallableElementTypeRendererHtml ().renderLinkedName (this );
380
+ }
381
+ return _linkedName;
422
382
}
383
+
384
+ String get superLinkedName => super .linkedName;
423
385
}
424
386
425
387
/// This is an anonymous function using the generic function syntax (declared
@@ -435,7 +397,7 @@ class CallableAnonymousElementType extends CallableElementType {
435
397
String get linkedName {
436
398
if (_linkedName == null ) {
437
399
_linkedName =
438
- '${ returnType . linkedName } ${ super . linkedName }<span class="signature">(${ ParameterRendererHtml (). renderLinkedParams ( element . parameters )})</span>' ;
400
+ CallableAnonymousElementTypeRendererHtml (). renderLinkedName ( this ) ;
439
401
}
440
402
return _linkedName;
441
403
}
0 commit comments