| Index: pkg/analyzer_cli/lib/src/driver.dart
|
| diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
|
| index 30547e60e48e61bcadfc1ba654ffb786abffde15..58e43596ef96577b97554ecefdd204c4adfa6cea 100644
|
| --- a/pkg/analyzer_cli/lib/src/driver.dart
|
| +++ b/pkg/analyzer_cli/lib/src/driver.dart
|
| @@ -10,6 +10,7 @@ import 'dart:io';
|
|
|
| import 'package:analyzer/file_system/file_system.dart' as fileSystem;
|
| import 'package:analyzer/file_system/physical_file_system.dart';
|
| +import 'package:analyzer/plugin/embedded_resolver_provider.dart';
|
| import 'package:analyzer/plugin/options.dart';
|
| import 'package:analyzer/plugin/resolver_provider.dart';
|
| import 'package:analyzer/source/analysis_options_provider.dart';
|
| @@ -82,6 +83,9 @@ class Driver implements CommandLineStarter {
|
| CommandLineOptions _previousOptions;
|
|
|
| @override
|
| + EmbeddedResolverProvider embeddedUriResolverProvider;
|
| +
|
| + @override
|
| ResolverProvider packageResolverProvider;
|
|
|
| /// This Driver's current analysis context.
|
| @@ -320,9 +324,23 @@ class Driver implements CommandLineStarter {
|
| PhysicalResourceProvider.INSTANCE.getResource('.');
|
| UriResolver resolver = packageResolverProvider(folder);
|
| if (resolver != null) {
|
| - // TODO(brianwilkerson) This doesn't support either embedder files or sdk extensions.
|
| + UriResolver sdkResolver;
|
| +
|
| + // Check for a resolver provider.
|
| + if (embeddedUriResolverProvider != null) {
|
| + EmbedderUriResolver embedderUriResolver =
|
| + embeddedUriResolverProvider(folder);
|
| + if (embedderUriResolver != null && embedderUriResolver.length != 0) {
|
| + sdkResolver = embedderUriResolver;
|
| + }
|
| + }
|
| +
|
| + // Default to a Dart URI resolver if no embedder is found.
|
| + sdkResolver ??= new DartUriResolver(sdk);
|
| +
|
| + // TODO(brianwilkerson) This doesn't sdk extensions.
|
| List<UriResolver> resolvers = <UriResolver>[
|
| - new DartUriResolver(sdk),
|
| + sdkResolver,
|
| resolver,
|
| new FileUriResolver()
|
| ];
|
|
|