@@ -42,29 +42,29 @@ abstract class PackageBuilder {
4242
4343/// A package builder that understands pub package format.
4444class PubPackageBuilder implements PackageBuilder {
45- final DartdocOptionContext config ;
46- final PackageMetaProvider packageMetaProvider ;
47- final PackageConfigProvider packageConfigProvider ;
45+ final DartdocOptionContext _config ;
46+ final PackageMetaProvider _packageMetaProvider ;
47+ final PackageConfigProvider _packageConfigProvider ;
4848
4949 PubPackageBuilder (
50- this .config ,
51- this .packageMetaProvider ,
52- this .packageConfigProvider , {
50+ this ._config ,
51+ this ._packageMetaProvider ,
52+ this ._packageConfigProvider , {
5353 @visibleForTesting bool skipUnreachableSdkLibraries = false ,
5454 }) : _skipUnreachableSdkLibraries = skipUnreachableSdkLibraries;
5555
5656 @override
5757 Future <PackageGraph > buildPackageGraph () async {
58- if (! config .sdkDocs) {
59- if (config .topLevelPackageMeta.requiresFlutter &&
60- config .flutterRoot == null ) {
58+ if (! _config .sdkDocs) {
59+ if (_config .topLevelPackageMeta.requiresFlutter &&
60+ _config .flutterRoot == null ) {
6161 // TODO(devoncarew): We may no longer need to emit this error.
6262 throw DartdocOptionError (
6363 'Top level package requires Flutter but FLUTTER_ROOT environment variable not set' );
6464 }
6565 }
6666
67- var rendererFactory = RendererFactory .forFormat (config .format);
67+ var rendererFactory = RendererFactory .forFormat (_config .format);
6868 runtimeStats.resetAccumulators ([
6969 'elementTypeInstantiation' ,
7070 'modelElementCacheInsertion' ,
@@ -76,13 +76,13 @@ class PubPackageBuilder implements PackageBuilder {
7676
7777 runtimeStats.startPerfTask ('getLibraries' );
7878 var newGraph = PackageGraph .uninitialized (
79- config ,
80- sdk ,
81- hasEmbedderSdkFiles ,
79+ _config ,
80+ _sdk ,
81+ _embedderSdkUris.isNotEmpty ,
8282 rendererFactory,
83- packageMetaProvider ,
83+ _packageMetaProvider ,
8484 );
85- await getLibraries (newGraph);
85+ await _getLibraries (newGraph);
8686 runtimeStats.endPerfTask ();
8787
8888 logDebug ('${DateTime .now ()}: Initializing package graph...' );
@@ -97,36 +97,37 @@ class PubPackageBuilder implements PackageBuilder {
9797 return newGraph;
9898 }
9999
100- late final DartSdk sdk = packageMetaProvider .defaultSdk ??
100+ late final DartSdk _sdk = _packageMetaProvider .defaultSdk ??
101101 FolderBasedDartSdk (
102- resourceProvider, resourceProvider .getFolder (config .sdkDir));
102+ _resourceProvider, _resourceProvider .getFolder (_config .sdkDir));
103103
104- EmbedderSdk ? _embedderSdk ;
104+ EmbedderSdk ? __embedderSdk ;
105105
106- EmbedderSdk ? get embedderSdk {
107- if (_embedderSdk == null && ! config .topLevelPackageMeta.isSdk) {
108- _embedderSdk = EmbedderSdk (
109- resourceProvider , EmbedderYamlLocator (_packageMap).embedderYamls);
106+ EmbedderSdk ? get _embedderSdk {
107+ if (__embedderSdk == null && ! _config .topLevelPackageMeta.isSdk) {
108+ __embedderSdk = EmbedderSdk (
109+ _resourceProvider , EmbedderYamlLocator (_packageMap).embedderYamls);
110110 }
111- return _embedderSdk ;
111+ return __embedderSdk ;
112112 }
113113
114- ResourceProvider get resourceProvider => packageMetaProvider.resourceProvider;
114+ ResourceProvider get _resourceProvider =>
115+ _packageMetaProvider.resourceProvider;
115116
116- p.Context get pathContext => resourceProvider .pathContext;
117+ p.Context get _pathContext => _resourceProvider .pathContext;
117118
118119 /// Do not call more than once for a given PackageBuilder.
119120 Future <void > _calculatePackageMap () async {
120121 _packageMap = < String , List <Folder >> {};
121- var cwd = resourceProvider .getResource (config .inputDir) as Folder ;
122- var info = await packageConfigProvider
123- .findPackageConfig (resourceProvider .getFolder (cwd.path));
122+ var cwd = _resourceProvider .getResource (_config .inputDir) as Folder ;
123+ var info = await _packageConfigProvider
124+ .findPackageConfig (_resourceProvider .getFolder (cwd.path));
124125 if (info == null ) return ;
125126
126127 for (var package in info.packages) {
127128 var packagePath =
128- pathContext .normalize (pathContext .fromUri (package.packageUriRoot));
129- var resource = resourceProvider .getResource (packagePath);
129+ _pathContext .normalize (_pathContext .fromUri (package.packageUriRoot));
130+ var resource = _resourceProvider .getResource (packagePath);
130131 if (resource is Folder ) {
131132 _packageMap[package.name] = [resource];
132133 }
@@ -137,11 +138,11 @@ class PubPackageBuilder implements PackageBuilder {
137138
138139 late final AnalysisContextCollection _contextCollection =
139140 AnalysisContextCollectionImpl (
140- includedPaths: [config .inputDir],
141+ includedPaths: [_config .inputDir],
141142 // TODO(jcollins-g): should we pass excluded directories here instead of
142143 // handling it ourselves?
143- resourceProvider: resourceProvider ,
144- sdkPath: config .sdkDir,
144+ resourceProvider: _resourceProvider ,
145+ sdkPath: _config .sdkDir,
145146 updateAnalysisOptions2: ({
146147 required AnalysisOptionsImpl analysisOptions,
147148 required ContextRoot contextRoot,
@@ -152,18 +153,18 @@ class PubPackageBuilder implements PackageBuilder {
152153 ..lint = false ,
153154 );
154155
155- /// The SDK files we should parse.
156156 List <String > get _sdkFilesToDocument => [
157- for (var sdkLib in sdk .sdkLibraries)
158- sdk .mapDartUri (sdkLib.shortName)! .fullName,
157+ for (var sdkLib in _sdk .sdkLibraries)
158+ _sdk .mapDartUri (sdkLib.shortName)! .fullName,
159159 ];
160160
161- /// Parses a single library at [filePath] using the current analysis driver.
161+ /// Resolves a single library at [filePath] using the current analysis driver.
162+ ///
162163 /// If [filePath] is not a library, returns null.
163- Future <DartDocResolvedLibrary ?> processLibrary (String filePath) async {
164+ Future <DartDocResolvedLibrary ?> _resolveLibrary (String filePath) async {
164165 logDebug ('Resolving $filePath ...' );
165166
166- var analysisContext = _contextCollection.contextFor (config .inputDir);
167+ var analysisContext = _contextCollection.contextFor (_config .inputDir);
167168 // Allow dart source files with inappropriate suffixes (#1897).
168169 final library =
169170 await analysisContext.currentSession.getResolvedLibrary (filePath);
@@ -174,7 +175,8 @@ class PubPackageBuilder implements PackageBuilder {
174175 }
175176
176177 Set <PackageMeta > _packageMetasForFiles (Iterable <String > files) => {
177- for (var filename in files) packageMetaProvider.fromFilename (filename)! ,
178+ for (var filename in files)
179+ _packageMetaProvider.fromFilename (filename)! ,
178180 };
179181
180182 /// Whether to skip unreachable libraries when gathering all of the libraries
@@ -238,7 +240,7 @@ class PubPackageBuilder implements PackageBuilder {
238240 }
239241 processedFiles.add (file);
240242 logProgress (file);
241- var resolvedLibrary = await processLibrary (file);
243+ var resolvedLibrary = await _resolveLibrary (file);
242244 if (resolvedLibrary == null ) {
243245 _knownParts.add (file);
244246 continue ;
@@ -285,7 +287,7 @@ class PubPackageBuilder implements PackageBuilder {
285287
286288 /// Whether [libraryElement] should be included in the libraries-to-document.
287289 bool _shouldIncludeLibrary (LibraryElement libraryElement) =>
288- config .include.isEmpty || config .include.contains (libraryElement.name);
290+ _config .include.isEmpty || _config .include.contains (libraryElement.name);
289291
290292 /// Returns all top level library files in the 'lib/' directory of the given
291293 /// package root directory.
@@ -301,10 +303,10 @@ class PubPackageBuilder implements PackageBuilder {
301303 var packageDirs = {basePackageDir};
302304
303305 if (includeDependencies) {
304- var packageConfig = (await packageConfigProvider
305- .findPackageConfig (resourceProvider .getFolder (basePackageDir)))! ;
306+ var packageConfig = (await _packageConfigProvider
307+ .findPackageConfig (_resourceProvider .getFolder (basePackageDir)))! ;
306308 for (var package in packageConfig.packages) {
307- if (filterExcludes && config .exclude.contains (package.name)) {
309+ if (filterExcludes && _config .exclude.contains (package.name)) {
308310 continue ;
309311 }
310312 packageDirs.add (_pathContext.dirname (
@@ -351,7 +353,7 @@ class PubPackageBuilder implements PackageBuilder {
351353 String directory, Set <String > listedDirectories) sync * {
352354 // Avoid recursive symlinks.
353355 var resolvedPath =
354- resourceProvider .getFolder (directory).resolveSymbolicLinksSync ().path;
356+ _resourceProvider .getFolder (directory).resolveSymbolicLinksSync ().path;
355357 if (listedDirectories.contains (resolvedPath)) {
356358 return ;
357359 }
@@ -362,7 +364,7 @@ class PubPackageBuilder implements PackageBuilder {
362364 };
363365
364366 for (var resource
365- in _packageDirList (resourceProvider .getFolder (directory))) {
367+ in _packageDirList (_resourceProvider .getFolder (directory))) {
366368 // Skip hidden files and directories.
367369 if (_pathContext.basename (resource.path).startsWith ('.' )) {
368370 continue ;
@@ -386,52 +388,55 @@ class PubPackageBuilder implements PackageBuilder {
386388 List <String > _includedExternalsFrom (Iterable <String > files) => [
387389 for (var file in files)
388390 ...DartdocOptionContext .fromContext (
389- config ,
390- config .resourceProvider.getFile (file),
391- config .resourceProvider,
391+ _config ,
392+ _config .resourceProvider.getFile (file),
393+ _config .resourceProvider,
392394 ).includeExternal,
393395 ];
394396
395- Future <Set <String >> _getFiles () async {
396- var files = config.topLevelPackageMeta.isSdk
397+ /// Returns the set of files that may contain elements that need to be
398+ /// documented.
399+ ///
400+ /// This takes into account the 'auto-include-dependencies' option, the
401+ /// 'exclude' option, and the 'include-external' option.
402+ Future <Set <String >> _getFilesToDocument () async {
403+ var files = _config.topLevelPackageMeta.isSdk
397404 ? _sdkFilesToDocument
398405 : await _findFilesToDocumentInPackage (
399- config .inputDir,
400- includeDependencies: config .autoIncludeDependencies,
406+ _config .inputDir,
407+ includeDependencies: _config .autoIncludeDependencies,
401408 filterExcludes: true ,
402409 ).toList ();
403410 files = [...files, ..._includedExternalsFrom (files)];
404411 return {
405- ...files. map ((s) => resourceProvider.pathContext
406- .absolute (resourceProvider .getFile (s).path)),
407- ...getEmbedderSdkFiles () ,
412+ ...files
413+ .map ((s) => _pathContext. absolute (_resourceProvider .getFile (s).path)),
414+ ..._embedderSdkFiles ,
408415 };
409416 }
410417
411- Iterable <String > getEmbedderSdkFiles () {
412- return [
413- for (var dartUri in _embedderSdkUris)
414- resourceProvider.pathContext.absolute (resourceProvider
415- .getFile (embedderSdk! .mapDartUri (dartUri)! .fullName)
416- .path),
417- ];
418- }
419-
420- bool get hasEmbedderSdkFiles => _embedderSdkUris.isNotEmpty;
418+ Iterable <String > get _embedderSdkFiles => [
419+ for (var dartUri in _embedderSdkUris)
420+ _pathContext.absolute (_resourceProvider
421+ .getFile (_embedderSdk! .mapDartUri (dartUri)! .fullName)
422+ .path),
423+ ];
421424
422425 Iterable <String > get _embedderSdkUris {
423- if (config .topLevelPackageMeta.isSdk) return const [];
426+ if (_config .topLevelPackageMeta.isSdk) return const [];
424427
425- return embedderSdk ? .urlMappings.keys ?? const [];
428+ return _embedderSdk ? .urlMappings.keys ?? const [];
426429 }
427430
428- Future <void > getLibraries (PackageGraph uninitializedPackageGraph) async {
429- var embedderSdk = this .embedderSdk;
431+ /// Adds all libraries with documentable elements to
432+ /// [uninitializedPackageGraph] .
433+ Future <void > _getLibraries (PackageGraph uninitializedPackageGraph) async {
434+ var embedderSdk = _embedderSdk;
430435 var findSpecialsSdk = switch (embedderSdk) {
431436 EmbedderSdk (: var urlMappings) when urlMappings.isNotEmpty => embedderSdk,
432- _ => sdk ,
437+ _ => _sdk ,
433438 };
434- var files = await _getFiles ();
439+ var files = await _getFilesToDocument ();
435440 var specialFiles = specialLibraryFiles (findSpecialsSdk);
436441
437442 logDebug ('${DateTime .now ()}: Discovering Dart libraries...' );
@@ -453,20 +458,18 @@ class PubPackageBuilder implements PackageBuilder {
453458 /// Throws an exception if any configured-to-be-included files were not found
454459 /// while gathering libraries.
455460 void _checkForMissingIncludedFiles (Set <LibraryElement > foundLibraries) {
456- if (config .include.isNotEmpty) {
461+ if (_config .include.isNotEmpty) {
457462 var knownLibraryNames = foundLibraries.map ((l) => l.name);
458- var notFound = config .include
463+ var notFound = _config .include
459464 .difference (Set .of (knownLibraryNames))
460- .difference (config .exclude);
465+ .difference (_config .exclude);
461466 if (notFound.isNotEmpty) {
462467 throw StateError ('Did not find: [${notFound .join (', ' )}] in '
463468 'known libraries: [${knownLibraryNames .join (', ' )}]' );
464469 }
465470 }
466471 }
467472
468- p.Context get _pathContext => resourceProvider.pathContext;
469-
470473 /// Returns the children of [directory] , or returns only the 'lib/'
471474 /// directory in [directory] if [directory] is determined to be a package
472475 /// root.
0 commit comments