Skip to content

Commit 60bb05a

Browse files
authored
Cleanup some doc methods (#2510)
* Cleanup some doc methods * Local doc * Undo accidental match change * Address feedback * Fix typo - oops :>
1 parent 0fbc46c commit 60bb05a

File tree

9 files changed

+47
-38
lines changed

9 files changed

+47
-38
lines changed

lib/src/generator/templates.renderers.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// To change the contents of this library, make changes to the builder source
44
// files in the tool/mustachio/ directory.
55

6-
// ignore_for_file: camel_case_types, unnecessary_cast, unused_element, unused_import, non_constant_identifier_names
6+
// ignore_for_file: camel_case_types, unnecessary_cast, unused_element, unused_import, non_constant_identifier_names, deprecated_member_use_from_same_package
77
import 'package:analyzer/file_system/file_system.dart';
88
import 'package:dartdoc/dartdoc.dart';
99
import 'package:dartdoc/src/generator/template_data.dart';

lib/src/model/documentable.dart

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,6 @@ enum DocumentLocation {
4545
mixin MarkdownFileDocumentation implements Documentable, Canonicalization {
4646
DocumentLocation get documentedWhere;
4747

48-
@override
49-
String get documentation => documentationFile == null
50-
? null
51-
: packageGraph.resourceProvider
52-
.readAsMalformedAllowedStringSync(documentationFile);
53-
5448
Documentation __documentation;
5549

5650
Documentation get _documentation {
@@ -63,11 +57,16 @@ mixin MarkdownFileDocumentation implements Documentable, Canonicalization {
6357
String get documentationAsHtml => _documentation.asHtml;
6458

6559
@override
66-
bool get hasDocumentation =>
67-
documentationFile != null &&
68-
packageGraph.resourceProvider
69-
.readAsMalformedAllowedStringSync(documentationFile)
70-
.isNotEmpty;
60+
String get documentation {
61+
final docFile = documentationFile;
62+
return docFile == null
63+
? null
64+
: packageGraph.resourceProvider
65+
.readAsMalformedAllowedStringSync(docFile);
66+
}
67+
68+
@override
69+
bool get hasDocumentation => documentation?.isNotEmpty == true;
7170

7271
@override
7372
bool get hasExtendedDocumentation =>

lib/src/model/documentation.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ class Documentation {
6262
/// if [processFullDocs] is `true`. If more than one node is present,
6363
/// then [DocumentationParseResult.hasExtendedDocs] will be set to `true`.
6464
DocumentationParseResult _parseDocumentation(bool processFullDocs) {
65-
if (!_element.hasDocumentation) {
65+
final text = _element.documentation;
66+
if (text == null || text.isEmpty) {
6667
return DocumentationParseResult.empty;
6768
}
68-
var text = _element.documentation;
6969
showWarningsForGenericsOutsideSquareBracketsBlocks(text, _element);
7070
var document =
7171
MarkdownDocument.withElementLinkResolver(_element, commentRefs);

lib/src/model/getter_setter_combo.dart

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -120,17 +120,14 @@ mixin GetterSetterCombo on ModelElement {
120120
return _documentationFrom;
121121
}
122122

123-
bool get hasAccessorsWithDocs => (hasPublicGetter &&
124-
!getter.isSynthetic &&
125-
getter.documentation.isNotEmpty ||
126-
hasPublicSetter &&
127-
!setter.isSynthetic &&
128-
setter.documentation.isNotEmpty);
123+
bool get hasAccessorsWithDocs =>
124+
(hasPublicGetter && !getter.isSynthetic && getter.hasDocumentation ||
125+
hasPublicSetter && !setter.isSynthetic && setter.hasDocumentation);
129126

130127
bool get getterSetterBothAvailable => (hasPublicGetter &&
131-
getter.documentation.isNotEmpty &&
128+
getter.hasDocumentation &&
132129
hasPublicSetter &&
133-
setter.documentation.isNotEmpty);
130+
setter.hasDocumentation);
134131

135132
String _oneLineDoc;
136133

lib/src/model/model_element.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -877,8 +877,7 @@ abstract class ModelElement extends Canonicalization
877877
bool get hasAnnotations => annotations.isNotEmpty;
878878

879879
@override
880-
bool get hasDocumentation =>
881-
documentation != null && documentation.isNotEmpty;
880+
bool get hasDocumentation => documentation?.isNotEmpty == true;
882881

883882
@override
884883
bool get hasExtendedDocumentation =>

lib/src/model/package.dart

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -118,29 +118,34 @@ class Package extends LibraryContainer
118118
return _documentationAsHtml;
119119
}
120120

121+
String /*?*/ _documentation;
122+
121123
@override
122124
String get documentation {
123-
return hasDocumentationFile
124-
? packageGraph.resourceProvider
125-
.readAsMalformedAllowedStringSync(documentationFile)
126-
: null;
125+
if (_documentation == null) {
126+
final docFile = documentationFile;
127+
if (docFile != null) {
128+
_documentation = packageGraph.resourceProvider
129+
.readAsMalformedAllowedStringSync(docFile);
130+
}
131+
}
132+
return _documentation;
127133
}
128134

129135
@override
130-
bool get hasDocumentation =>
131-
documentationFile != null &&
132-
packageGraph.resourceProvider
133-
.readAsMalformedAllowedStringSync(documentationFile)
134-
.isNotEmpty;
136+
bool get hasDocumentation => documentation?.isNotEmpty == true;
135137

136138
@override
137-
bool get hasExtendedDocumentation => documentation.isNotEmpty;
139+
bool get hasExtendedDocumentation => hasDocumentation;
140+
141+
File /*?*/ _documentationFile;
138142

139-
// TODO: Clients should use [documentationFile] so they can act differently on
140-
// plain text or markdown.
143+
@Deprecated(
144+
'Instead use [documentationFile] which will be `null` if this package does not have one.')
141145
bool get hasDocumentationFile => documentationFile != null;
142146

143-
File get documentationFile => packageMeta.getReadmeContents();
147+
File /*?*/ get documentationFile =>
148+
_documentationFile ??= packageMeta.getReadmeContents();
144149

145150
@override
146151
String get oneLineDoc => '';

test/end2end/dartdoc_test.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,9 @@ void main() {
248248
var packageGraph = results.packageGraph;
249249
var p = packageGraph.defaultPackage;
250250
expect(p.name, 'test_package');
251+
// ignore: deprecated_member_use_from_same_package
251252
expect(p.hasDocumentationFile, isTrue);
253+
expect(p.documentationFile, isNotNull);
252254
// Total number of public libraries in test_package.
253255
// +2 since we are not manually excluding anything.
254256
expect(packageGraph.defaultPackage.publicLibraries,
@@ -293,7 +295,9 @@ void main() {
293295

294296
var p = results.packageGraph;
295297
expect(p.defaultPackage.name, 'sky_engine');
298+
// ignore: deprecated_member_use_from_same_package
296299
expect(p.defaultPackage.hasDocumentationFile, isFalse);
300+
expect(p.defaultPackage.documentationFile, isNull);
297301
expect(p.libraries, hasLength(3));
298302
expect(p.libraries.map((lib) => lib.name).contains('dart:core'), isTrue);
299303
expect(p.libraries.map((lib) => lib.name).contains('dart:async'), isTrue);

test/package_test.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,19 @@ int x;
146146
writeToJoinedPath(['README.md'], 'Readme text.');
147147
var packageGraph = await utils.bootBasicPackage(
148148
projectPath, packageMetaProvider, packageConfigProvider);
149+
// ignore: deprecated_member_use_from_same_package
149150
expect(packageGraph.defaultPackage.hasDocumentationFile, true);
151+
expect(packageGraph.defaultPackage.documentationFile, isNotNull);
150152
expect(packageGraph.defaultPackage.hasDocumentation, true);
151153
});
152154

153155
test('has documentation via text README', () async {
154156
writeToJoinedPath(['README'], 'Readme text.');
155157
var packageGraph = await utils.bootBasicPackage(
156158
projectPath, packageMetaProvider, packageConfigProvider);
159+
// ignore: deprecated_member_use_from_same_package
157160
expect(packageGraph.defaultPackage.hasDocumentationFile, true);
161+
expect(packageGraph.defaultPackage.documentationFile, isNotNull);
158162
expect(packageGraph.defaultPackage.hasDocumentation, true);
159163
});
160164

@@ -458,6 +462,7 @@ int x;
458462
projectPath, packageMetaProvider, packageConfigProvider);
459463

460464
expect(packageGraph.defaultPackage.hasDocumentation, isFalse);
465+
// ignore: deprecated_member_use_from_same_package
461466
expect(packageGraph.defaultPackage.hasDocumentationFile, isFalse);
462467
expect(packageGraph.defaultPackage.documentationFile, isNull);
463468
expect(packageGraph.defaultPackage.documentation, isNull);

tool/mustachio/codegen_runtime_renderer.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class RuntimeRenderersBuilder {
8585
// To change the contents of this library, make changes to the builder source
8686
// files in the tool/mustachio/ directory.
8787
88-
// ignore_for_file: camel_case_types, unnecessary_cast, unused_element, unused_import, non_constant_identifier_names
88+
// ignore_for_file: camel_case_types, unnecessary_cast, unused_element, unused_import, non_constant_identifier_names, deprecated_member_use_from_same_package
8989
import 'package:analyzer/file_system/file_system.dart';
9090
import 'package:dartdoc/dartdoc.dart';
9191
import 'package:dartdoc/src/generator/template_data.dart';

0 commit comments

Comments
 (0)