Skip to content

Commit 3141ceb

Browse files
authored
Minor typedef renderer cleanup (#2538)
* Minor typedef renderer cleanup * Switch to using the const constructors
1 parent 9bead38 commit 3141ceb

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

lib/src/render/renderer_factory.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class HtmlRenderFactory extends RendererFactory {
101101
TypeParametersRendererHtml();
102102

103103
@override
104-
TypedefRenderer get typedefRenderer => TypedefRendererHtml();
104+
TypedefRenderer get typedefRenderer => const TypedefRendererHtml();
105105

106106
@override
107107
FeatureRenderer get featureRenderer => FeatureRendererHtml();
@@ -154,7 +154,7 @@ class MdRenderFactory extends RendererFactory {
154154
TypeParametersRendererMd();
155155

156156
@override
157-
TypedefRenderer get typedefRenderer => TypedefRendererMd();
157+
TypedefRenderer get typedefRenderer => const TypedefRendererMd();
158158

159159
@override
160160
FeatureRenderer get featureRenderer => FeatureRendererMd();

lib/src/render/typedef_renderer.dart

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,49 @@
44

55
import 'package:dartdoc/src/model/typedef.dart';
66

7+
/// A renderer for a [Typedef].
78
abstract class TypedefRenderer {
9+
const TypedefRenderer();
10+
11+
/// Render the the generic type parameters of the specified [typedef].
812
String renderGenericParameters(Typedef typedef);
913
}
1014

15+
/// A HTML renderer for a [Typedef].
1116
class TypedefRendererHtml extends TypedefRenderer {
17+
const TypedefRendererHtml();
18+
1219
@override
1320
String renderGenericParameters(Typedef typedef) {
14-
if (typedef.genericTypeParameters.isEmpty) {
21+
final genericTypeParameters = typedef.genericTypeParameters;
22+
if (genericTypeParameters.isEmpty) {
1523
return '';
1624
}
17-
var joined = typedef.genericTypeParameters
18-
.map((t) => t.name)
19-
.join('</span>, <span class="type-parameter">');
20-
return '&lt;<wbr><span class="type-parameter">${joined}</span>&gt;';
25+
26+
final buffer = StringBuffer('&lt;<wbr><span class="type-parameter">');
27+
buffer.writeAll(genericTypeParameters.map((t) => t.name),
28+
'</span>, <span class="type-parameter">');
29+
buffer.write('</span>&gt;');
30+
31+
return buffer.toString();
2132
}
2233
}
2334

35+
/// A markdown renderer for a [Typedef].
2436
class TypedefRendererMd extends TypedefRenderer {
37+
const TypedefRendererMd();
38+
2539
@override
2640
String renderGenericParameters(Typedef typedef) {
27-
if (typedef.genericTypeParameters.isEmpty) {
41+
final genericTypeParameters = typedef.genericTypeParameters;
42+
if (genericTypeParameters.isEmpty) {
2843
return '';
2944
}
30-
var joined = typedef.genericTypeParameters.map((t) => t.name).join(', ');
31-
return '&lt;{$joined}>';
45+
46+
final buffer = StringBuffer('&lt;{');
47+
buffer.writeAll(genericTypeParameters.map((t) => t.name), ', ');
48+
buffer.write('}>');
49+
50+
return buffer.toString();
3251
}
3352
}

0 commit comments

Comments
 (0)