@@ -8,6 +8,12 @@ library dartdoc;
88import 'dart:async' ;
99import 'dart:io' ;
1010
11+ import 'package:analyzer/file_system/file_system.dart' as fileSystem;
12+ import 'package:analyzer/file_system/physical_file_system.dart' ;
13+ import 'package:analyzer/source/package_map_provider.dart' ;
14+ import 'package:analyzer/source/package_map_resolver.dart' ;
15+ import 'package:analyzer/source/pub_package_map_provider.dart' ;
16+ import 'package:analyzer/source/sdk_ext.dart' ;
1117import 'package:analyzer/src/generated/element.dart' ;
1218import 'package:analyzer/src/generated/engine.dart' ;
1319import 'package:analyzer/src/generated/error.dart' ;
@@ -131,12 +137,20 @@ class DartDoc {
131137 ];
132138 if (urlMappings != null ) resolvers.insert (
133139 0 , new CustomUriResolver (urlMappings));
134- JavaFile packagesDir = packageRootDir == null
135- ? new JavaFile .relative (new JavaFile (rootDir.path), 'packages' )
136- : new JavaFile (packageRootDir.path);
137- if (packagesDir.exists ()) {
138- resolvers.add (new PackageUriResolver ([packagesDir]));
140+
141+ fileSystem.Resource cwd =
142+ PhysicalResourceProvider .INSTANCE .getResource ('.' );
143+ PubPackageMapProvider pubPackageMapProvider =
144+ new PubPackageMapProvider (PhysicalResourceProvider .INSTANCE , sdk);
145+ PackageMapInfo packageMapInfo =
146+ pubPackageMapProvider.computePackageMap (cwd);
147+ Map <String , List <fileSystem.Folder >> packageMap = packageMapInfo.packageMap;
148+ if (packageMap != null ) {
149+ resolvers.add (new SdkExtUriResolver (packageMap));
150+ resolvers.add (new PackageMapUriResolver (
151+ PhysicalResourceProvider .INSTANCE , packageMap));
139152 }
153+
140154 SourceFactory sourceFactory =
141155 new SourceFactory (/*contentCache,*/ resolvers);
142156
0 commit comments