Skip to content

Commit 0729031

Browse files
committed
Merge pull request #805 from keertip/sdk_ext
add support for sdk extensions
2 parents 46cc062 + 717ddd4 commit 0729031

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

lib/dartdoc.dart

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ library dartdoc;
88
import 'dart:async';
99
import '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';
1117
import 'package:analyzer/src/generated/element.dart';
1218
import 'package:analyzer/src/generated/engine.dart';
1319
import '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

Comments
 (0)