Skip to content

Commit 3098910

Browse files
authored
Refactor so that docs are generated through the Package class (#1659)
* refactors * Library/Package/PackageGraph constructor shuffle * Not quite there; still need to populate non-local packages * weird vm thing * Got it? * Add another test * tweaks for Flutter * Initialization speedups * Canonicalize path comparisons and increase timeouts on the complex dartdoc tests for travis * Update grind with different parameters * remove commented out line
1 parent 11703b1 commit 3098910

14 files changed

+490
-258
lines changed

lib/src/html/html_generator_instance.dart

Lines changed: 60 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -89,76 +89,78 @@ class HtmlGeneratorInstance {
8989

9090
generatePackage();
9191

92-
for (var lib in filterNonDocumented(_packageGraph.libraries)) {
93-
generateLibrary(_packageGraph, lib);
94-
95-
for (var clazz in filterNonDocumented(lib.allClasses)) {
96-
generateClass(_packageGraph, lib, clazz);
97-
98-
for (var constructor in filterNonDocumented(clazz.constructors)) {
99-
if (!constructor.isCanonical) continue;
100-
generateConstructor(_packageGraph, lib, clazz, constructor);
92+
for (var package in _packageGraph.localPackages) {
93+
for (var lib in filterNonDocumented(package.libraries)) {
94+
generateLibrary(_packageGraph, lib);
95+
96+
for (var clazz in filterNonDocumented(lib.allClasses)) {
97+
generateClass(_packageGraph, lib, clazz);
98+
99+
for (var constructor in filterNonDocumented(clazz.constructors)) {
100+
if (!constructor.isCanonical) continue;
101+
generateConstructor(_packageGraph, lib, clazz, constructor);
102+
}
103+
104+
for (var constant in filterNonDocumented(clazz.constants)) {
105+
if (!constant.isCanonical) continue;
106+
generateConstant(_packageGraph, lib, clazz, constant);
107+
}
108+
109+
for (var property in filterNonDocumented(clazz.staticProperties)) {
110+
if (!property.isCanonical) continue;
111+
generateProperty(_packageGraph, lib, clazz, property);
112+
}
113+
114+
for (var property in filterNonDocumented(clazz.propertiesForPages)) {
115+
if (!property.isCanonical) continue;
116+
generateProperty(_packageGraph, lib, clazz, property);
117+
}
118+
119+
for (var method in filterNonDocumented(clazz.methodsForPages)) {
120+
if (!method.isCanonical) continue;
121+
generateMethod(_packageGraph, lib, clazz, method);
122+
}
123+
124+
for (var operator in filterNonDocumented(clazz.operatorsForPages)) {
125+
if (!operator.isCanonical) continue;
126+
generateMethod(_packageGraph, lib, clazz, operator);
127+
}
128+
129+
for (var method in filterNonDocumented(clazz.staticMethods)) {
130+
if (!method.isCanonical) continue;
131+
generateMethod(_packageGraph, lib, clazz, method);
132+
}
101133
}
102134

103-
for (var constant in filterNonDocumented(clazz.constants)) {
104-
if (!constant.isCanonical) continue;
105-
generateConstant(_packageGraph, lib, clazz, constant);
135+
for (var eNum in filterNonDocumented(lib.enums)) {
136+
generateEnum(_packageGraph, lib, eNum);
137+
for (var property in filterNonDocumented(eNum.propertiesForPages)) {
138+
generateProperty(_packageGraph, lib, eNum, property);
139+
}
140+
for (var operator in filterNonDocumented(eNum.operatorsForPages)) {
141+
generateMethod(_packageGraph, lib, eNum, operator);
142+
}
143+
for (var method in filterNonDocumented(eNum.methodsForPages)) {
144+
generateMethod(_packageGraph, lib, eNum, method);
145+
}
106146
}
107147

108-
for (var property in filterNonDocumented(clazz.staticProperties)) {
109-
if (!property.isCanonical) continue;
110-
generateProperty(_packageGraph, lib, clazz, property);
148+
for (var constant in filterNonDocumented(lib.constants)) {
149+
generateTopLevelConstant(_packageGraph, lib, constant);
111150
}
112151

113-
for (var property in filterNonDocumented(clazz.propertiesForPages)) {
114-
if (!property.isCanonical) continue;
115-
generateProperty(_packageGraph, lib, clazz, property);
152+
for (var property in filterNonDocumented(lib.properties)) {
153+
generateTopLevelProperty(_packageGraph, lib, property);
116154
}
117155

118-
for (var method in filterNonDocumented(clazz.methodsForPages)) {
119-
if (!method.isCanonical) continue;
120-
generateMethod(_packageGraph, lib, clazz, method);
156+
for (var function in filterNonDocumented(lib.functions)) {
157+
generateFunction(_packageGraph, lib, function);
121158
}
122159

123-
for (var operator in filterNonDocumented(clazz.operatorsForPages)) {
124-
if (!operator.isCanonical) continue;
125-
generateMethod(_packageGraph, lib, clazz, operator);
126-
}
127-
128-
for (var method in filterNonDocumented(clazz.staticMethods)) {
129-
if (!method.isCanonical) continue;
130-
generateMethod(_packageGraph, lib, clazz, method);
131-
}
132-
}
133-
134-
for (var eNum in filterNonDocumented(lib.enums)) {
135-
generateEnum(_packageGraph, lib, eNum);
136-
for (var property in filterNonDocumented(eNum.propertiesForPages)) {
137-
generateProperty(_packageGraph, lib, eNum, property);
138-
}
139-
for (var operator in filterNonDocumented(eNum.operatorsForPages)) {
140-
generateMethod(_packageGraph, lib, eNum, operator);
141-
}
142-
for (var method in filterNonDocumented(eNum.methodsForPages)) {
143-
generateMethod(_packageGraph, lib, eNum, method);
160+
for (var typeDef in filterNonDocumented(lib.typedefs)) {
161+
generateTypeDef(_packageGraph, lib, typeDef);
144162
}
145163
}
146-
147-
for (var constant in filterNonDocumented(lib.constants)) {
148-
generateTopLevelConstant(_packageGraph, lib, constant);
149-
}
150-
151-
for (var property in filterNonDocumented(lib.properties)) {
152-
generateTopLevelProperty(_packageGraph, lib, property);
153-
}
154-
155-
for (var function in filterNonDocumented(lib.functions)) {
156-
generateFunction(_packageGraph, lib, function);
157-
}
158-
159-
for (var typeDef in filterNonDocumented(lib.typedefs)) {
160-
generateTypeDef(_packageGraph, lib, typeDef);
161-
}
162164
}
163165
}
164166

lib/src/html/template_data.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ abstract class TemplateData<T extends Documentable> {
7474
}
7575

7676
Iterable<Subnav> _gatherSubnavForInvokable(ModelElement element) {
77-
if (element is SourceCodeMixin &&
78-
(element as SourceCodeMixin).hasSourceCode) {
77+
if (element.hasSourceCode) {
7978
return [new Subnav('Source', '${element.href}#source')];
8079
} else {
8180
return <Subnav>[];

lib/src/markdown_processor.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ ModelElement _findRefElementInLibrary(String codeRef, Warnable element,
475475
assert(packageGraph.allLibrariesAdded);
476476
_findRefElementCache = new Map();
477477
for (final modelElement
478-
in filterNonDocumented(packageGraph.allModelElements)) {
478+
in filterNonDocumented(packageGraph.allLocalModelElements)) {
479479
_findRefElementCache.putIfAbsent(
480480
modelElement.fullyQualifiedNameWithoutLibrary, () => new Set());
481481
_findRefElementCache.putIfAbsent(

0 commit comments

Comments
 (0)