diff --git a/lib/src/model/enum.dart b/lib/src/model/enum.dart index 91c2e68a91..a534a3676d 100644 --- a/lib/src/model/enum.dart +++ b/lib/src/model/enum.dart @@ -63,6 +63,14 @@ class EnumField extends Field { } } + @override + String get extendedDocLink { + // Ordinal members don't get extended doc links. Inherited members + // (e.g. hashcode) follow the normal rules. + if (index != null) return ''; + return super.extendedDocLink; + } + @override String get href { if (!identical(canonicalModelElement, this)) { diff --git a/lib/src/model/getter_setter_combo.dart b/lib/src/model/getter_setter_combo.dart index 8684fa4952..2364bf8bde 100644 --- a/lib/src/model/getter_setter_combo.dart +++ b/lib/src/model/getter_setter_combo.dart @@ -135,7 +135,7 @@ mixin GetterSetterCombo on ModelElement { String get oneLineDoc { if (_oneLineDoc == null) { if (!hasAccessorsWithDocs) { - _oneLineDoc = computeOneLineDoc(); + _oneLineDoc = super.oneLineDoc; } else { StringBuffer buffer = StringBuffer(); if (hasPublicGetter && getter.oneLineDoc.isNotEmpty) { diff --git a/lib/src/model/model_element.dart b/lib/src/model/model_element.dart index 08835728f9..1307754443 100644 --- a/lib/src/model/model_element.dart +++ b/lib/src/model/model_element.dart @@ -797,7 +797,7 @@ abstract class ModelElement extends Canonicalization /// does not exist. String get extendedDocLink { if (hasExtendedDocumentation) { - return '[...]'; + return ModelElementRendererHtml().renderExtendedDocLink(this); } return ''; } @@ -977,19 +977,8 @@ abstract class ModelElement extends Canonicalization @override String get name => element.name; - // TODO(jcollins-g): refactor once dartdoc will only run in a VM where mixins - // calling super is allowed (SDK constraint >= 2.1.0). - String computeOneLineDoc() => - '${_documentation.asOneLiner}${extendedDocLink.isEmpty ? "" : " $extendedDocLink"}'; - String _oneLineDoc; - @override - String get oneLineDoc { - if (_oneLineDoc == null) { - _oneLineDoc = computeOneLineDoc(); - } - return _oneLineDoc; - } + String get oneLineDoc => _documentation.asOneLiner; Member get originalMember => _originalMember; diff --git a/lib/src/render/model_element_renderer.dart b/lib/src/render/model_element_renderer.dart index 700e3f2dae..9d274d4fe4 100644 --- a/lib/src/render/model_element_renderer.dart +++ b/lib/src/render/model_element_renderer.dart @@ -7,6 +7,8 @@ import 'package:dartdoc/src/model/model_element.dart'; abstract class ModelElementRenderer { String renderLinkedName(ModelElement modelElement); + String renderExtendedDocLink(ModelElement modelElement); + String renderYoutubeUrl(String youTubeId, String aspectRatio); String renderAnimation( @@ -20,6 +22,11 @@ class ModelElementRendererHtml extends ModelElementRenderer { return '${modelElement.name}'; } + @override + String renderExtendedDocLink(ModelElement modelElement) { + return '[...]'; + } + @override String renderYoutubeUrl(String youTubeId, String aspectRatio) { // Blank lines before and after, and no indenting at the beginning and end diff --git a/lib/templates/_callable.html b/lib/templates/_callable.html index 967230cde9..7fb911b573 100644 --- a/lib/templates/_callable.html +++ b/lib/templates/_callable.html @@ -5,6 +5,6 @@ {{>categorization}}
{{{ constantValueTruncated }}}
diff --git a/lib/templates/_extension.html b/lib/templates/_extension.html
index d35e458e3c..33754284c7 100644
--- a/lib/templates/_extension.html
+++ b/lib/templates/_extension.html
@@ -2,6 +2,6 @@
{{{linkedName}}} {{>categorization}}
value
to the end of this list,\nextending the length by one. [...]'));
+ 'Adds value
to the end of this list,\nextending the length by one.'));
});
test(
@@ -1322,8 +1323,10 @@ void main() {
});
test('bullet points work in top level variables', () {
- expect(bulletDoced.oneLineDoc,
- contains('[...]'));
+ expect(
+ bulletDoced.extendedDocLink,
+ equals(
+ ModelElementRendererHtml().renderExtendedDocLink(bulletDoced)));
expect(bulletDoced.documentationAsHtml, contains('