Skip to content

Commit d72989a

Browse files
authored
Move extendedDocLink creation to ModelElementRenderer (#2085)
* Move extendedDocLink creation to ModelElementRenderer * Also separate it from oneLineDoc and update the templates accordingly. * Retain one literal string test * Enum ordinal members do not show extended doc link
1 parent 38d0943 commit d72989a

File tree

18 files changed

+49
-40
lines changed

18 files changed

+49
-40
lines changed

lib/src/model/enum.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ class EnumField extends Field {
6363
}
6464
}
6565

66+
@override
67+
String get extendedDocLink {
68+
// Ordinal members don't get extended doc links. Inherited members
69+
// (e.g. hashcode) follow the normal rules.
70+
if (index != null) return '';
71+
return super.extendedDocLink;
72+
}
73+
6674
@override
6775
String get href {
6876
if (!identical(canonicalModelElement, this)) {

lib/src/model/getter_setter_combo.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ mixin GetterSetterCombo on ModelElement {
135135
String get oneLineDoc {
136136
if (_oneLineDoc == null) {
137137
if (!hasAccessorsWithDocs) {
138-
_oneLineDoc = computeOneLineDoc();
138+
_oneLineDoc = super.oneLineDoc;
139139
} else {
140140
StringBuffer buffer = StringBuffer();
141141
if (hasPublicGetter && getter.oneLineDoc.isNotEmpty) {

lib/src/model/model_element.dart

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ abstract class ModelElement extends Canonicalization
784784
/// does not exist.
785785
String get extendedDocLink {
786786
if (hasExtendedDocumentation) {
787-
return '<a href="${href}">[...]</a>';
787+
return ModelElementRendererHtml().renderExtendedDocLink(this);
788788
}
789789
return '';
790790
}
@@ -964,19 +964,8 @@ abstract class ModelElement extends Canonicalization
964964
@override
965965
String get name => element.name;
966966

967-
// TODO(jcollins-g): refactor once dartdoc will only run in a VM where mixins
968-
// calling super is allowed (SDK constraint >= 2.1.0).
969-
String computeOneLineDoc() =>
970-
'${_documentation.asOneLiner}${extendedDocLink.isEmpty ? "" : " $extendedDocLink"}';
971-
String _oneLineDoc;
972-
973967
@override
974-
String get oneLineDoc {
975-
if (_oneLineDoc == null) {
976-
_oneLineDoc = computeOneLineDoc();
977-
}
978-
return _oneLineDoc;
979-
}
968+
String get oneLineDoc => _documentation.asOneLiner;
980969

981970
Member get originalMember => _originalMember;
982971

lib/src/render/model_element_renderer.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import 'package:dartdoc/src/model/model_element.dart';
77
abstract class ModelElementRenderer {
88
String renderLinkedName(ModelElement modelElement);
99

10+
String renderExtendedDocLink(ModelElement modelElement);
11+
1012
String renderYoutubeUrl(String youTubeId, String aspectRatio);
1113

1214
String renderAnimation(
@@ -20,6 +22,11 @@ class ModelElementRendererHtml extends ModelElementRenderer {
2022
return '<a${cssClass} href="${modelElement.href}">${modelElement.name}</a>';
2123
}
2224

25+
@override
26+
String renderExtendedDocLink(ModelElement modelElement) {
27+
return '<a href="${modelElement.href}">[...]</a>';
28+
}
29+
2330
@override
2431
String renderYoutubeUrl(String youTubeId, String aspectRatio) {
2532
// Blank lines before and after, and no indenting at the beginning and end

lib/templates/_callable.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
{{>categorization}}
66
</dt>
77
<dd{{ #isInherited }} class="inherited"{{ /isInherited}}>
8-
{{{ oneLineDoc }}}
8+
{{{ oneLineDoc }}} {{{ extendedDocLink }}}
99
{{>features}}
1010
</dd>

lib/templates/_class.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
<span class="name {{#isDeprecated}}deprecated{{/isDeprecated}}">{{{linkedName}}}{{{linkedGenericParameters}}}</span> {{>categorization}}
33
</dt>
44
<dd>
5-
{{{ oneLineDoc }}}
5+
{{{ oneLineDoc }}} {{{ extendedDocLink }}}
66
</dd>

lib/templates/_constant.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
{{>categorization}}
55
</dt>
66
<dd>
7-
{{{ oneLineDoc }}}
7+
{{{ oneLineDoc }}} {{{ extendedDocLink }}}
88
{{>features}}
99
<div>
1010
<span class="signature"><code>{{{ constantValueTruncated }}}</code></span>

lib/templates/_extension.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<span class="name {{#isDeprecated}}deprecated{{/isDeprecated}}">{{{linkedName}}}</span> {{>categorization}}
33
</dt>
44
<dd>
5-
{{{ oneLineDoc }}}
5+
{{{ oneLineDoc }}} {{{ extendedDocLink }}}
66
</dd>
77

lib/templates/_library.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
<span class="name">{{{ linkedName }}}</span> {{>categorization}}
33
</dt>
44
<dd>
5-
{{#isDocumented}}{{{ oneLineDoc }}}{{/isDocumented}}
6-
</dd>
5+
{{#isDocumented}}{{{ oneLineDoc }}} {{{ extendedDocLink }}}{{/isDocumented}}
6+
</dd>

lib/templates/_mixin.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
<span class="name {{#isDeprecated}}deprecated{{/isDeprecated}}">{{{linkedName}}}{{{linkedGenericParameters}}}</span> {{>categorization}}
33
</dt>
44
<dd>
5-
{{{ oneLineDoc }}}
5+
{{{ oneLineDoc }}} {{{ extendedDocLink }}}
66
</dd>

0 commit comments

Comments
 (0)