Index: pkg/analysis_server/lib/src/context_manager.dart |
diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart |
index 2d4d08faed6b2d8ccdea7b518c133d63c69f517f..c9502d62d0822448362c994dce3f3eb6e5cf5276 100644 |
--- a/pkg/analysis_server/lib/src/context_manager.dart |
+++ b/pkg/analysis_server/lib/src/context_manager.dart |
@@ -19,6 +19,7 @@ import 'package:analyzer/source/package_map_provider.dart'; |
import 'package:analyzer/source/package_map_resolver.dart'; |
import 'package:analyzer/source/path_filter.dart'; |
import 'package:analyzer/source/pub_package_map_provider.dart'; |
+import 'package:analyzer/source/sdk_ext.dart'; |
import 'package:analyzer/src/generated/engine.dart'; |
import 'package:analyzer/src/generated/java_io.dart'; |
import 'package:analyzer/src/generated/source.dart'; |
@@ -1352,7 +1353,8 @@ class PackageMapDisposition extends FolderDisposition { |
@override |
Iterable<UriResolver> createPackageUriResolvers( |
ResourceProvider resourceProvider) => |
- <UriResolver>[new PackageMapUriResolver(resourceProvider, packageMap)]; |
+ <UriResolver>[new SdkExtUriResolver(packageMap), |
+ new PackageMapUriResolver(resourceProvider, packageMap)]; |
} |
/** |
@@ -1370,6 +1372,19 @@ class PackagesFileDisposition extends FolderDisposition { |
@override |
Iterable<UriResolver> createPackageUriResolvers( |
- ResourceProvider resourceProvider) => |
- const <UriResolver>[]; |
+ ResourceProvider resourceProvider) { |
+ if (packages != null) { |
+ // Construct package map for the SdkExtUriResolver. |
+ Map<String, List<Folder>> packageMap = <String, List<Folder>>{}; |
+ packages.asMap().forEach((String name, Uri uri) { |
+ if (uri.scheme == 'file' || uri.scheme == '' /* unspecified */) { |
+ packageMap[name] = |
+ <Folder>[resourceProvider.getFolder(uri.toFilePath())]; |
Paul Berry
2015/08/13 17:12:07
This will cause unit testing problems because uri.
Cutch
2015/08/13 19:24:17
Done.
|
+ } |
+ }); |
+ return <UriResolver>[new SdkExtUriResolver(packageMap)]; |
+ } else { |
+ return const <UriResolver>[]; |
+ } |
+ } |
} |