1
1
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2
-
3
2
// for details. All rights reserved. Use of this source code is governed by a
4
3
// BSD-style license that can be found in the LICENSE file.
5
4
@@ -8,19 +7,15 @@ import 'package:analyzer/file_system/file_system.dart'
8
7
show ResourceProvider, ResourceUriResolver;
9
8
import 'package:analyzer/file_system/physical_file_system.dart'
10
9
show PhysicalResourceProvider;
10
+ import 'package:analyzer/source/custom_resolver.dart' ;
11
+ import 'package:analyzer/source/package_map_resolver.dart' ;
12
+ import 'package:analyzer/src/context/builder.dart' ;
11
13
import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl;
12
14
import 'package:analyzer/src/dart/sdk/sdk.dart' show FolderBasedDartSdk;
13
15
import 'package:analyzer/src/generated/engine.dart'
14
16
show AnalysisContext, AnalysisEngine, AnalysisOptionsImpl;
15
- import 'package:analyzer/src/generated/java_io.dart' show JavaFile;
16
- import 'package:analyzer/src/generated/source.dart' ;
17
- import 'package:analyzer/src/generated/source_io.dart'
18
- show
19
- CustomUriResolver,
20
- DartUriResolver,
21
- PackageUriResolver,
22
- SourceFactory,
23
- UriResolver;
17
+ import 'package:analyzer/src/generated/source.dart'
18
+ show DartUriResolver, SourceFactory, UriResolver;
24
19
import 'package:analyzer/src/summary/package_bundle_reader.dart'
25
20
show InSummaryUriResolver, InputPackagesResultProvider, SummaryDataStore;
26
21
import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk;
@@ -157,26 +152,39 @@ SourceFactory _createSourceFactory(AnalyzerOptions options,
157
152
List <UriResolver > fileResolvers,
158
153
SummaryDataStore summaryData,
159
154
ResourceProvider resourceProvider}) {
155
+ resourceProvider ?? = PhysicalResourceProvider .INSTANCE ;
160
156
var resolvers = < UriResolver > [];
161
157
if (options.customUrlMappings.isNotEmpty) {
162
- resolvers.add (new CustomUriResolver (options.customUrlMappings));
158
+ resolvers.add (
159
+ new CustomUriResolver (resourceProvider, options.customUrlMappings));
163
160
}
164
161
resolvers.add (sdkResolver);
165
162
if (summaryData != null ) {
166
163
resolvers.add (new InSummaryUriResolver (resourceProvider, summaryData));
167
164
}
168
165
169
- if (fileResolvers == null ) fileResolvers = createFileResolvers (options);
166
+ if (fileResolvers == null )
167
+ fileResolvers =
168
+ createFileResolvers (options, resourceProvider: resourceProvider);
170
169
resolvers.addAll (fileResolvers);
171
170
return new SourceFactory (resolvers, null , resourceProvider);
172
171
}
173
172
174
- List <UriResolver > createFileResolvers (AnalyzerOptions options) {
173
+ List <UriResolver > createFileResolvers (AnalyzerOptions options,
174
+ {ResourceProvider resourceProvider}) {
175
+ resourceProvider ?? = PhysicalResourceProvider .INSTANCE ;
176
+ UriResolver packageResolver () {
177
+ ContextBuilder builder = new ContextBuilder (resourceProvider, null , null );
178
+ builder.defaultPackagesDirectoryPath = options.packageRoot;
179
+ return new PackageMapUriResolver (resourceProvider,
180
+ builder.convertPackagesToMap (builder.createPackageMap ('' )));
181
+ }
182
+
175
183
return [
176
- new ResourceUriResolver (PhysicalResourceProvider . INSTANCE ),
184
+ new ResourceUriResolver (resourceProvider ),
177
185
options.useMultiPackage
178
186
? new MultiPackageResolver (options.packagePaths)
179
- : new PackageUriResolver ([ new JavaFile (options.packageRoot)] )
187
+ : packageResolver ( )
180
188
];
181
189
}
182
190
0 commit comments