Chromium Code Reviews| 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 083874b29b6299b21bb0a127055fa23690171949..147dd0d28b262f6d6a03a8752f800502a2856dc6 100644 |
| --- a/pkg/analysis_server/lib/src/context_manager.dart |
| +++ b/pkg/analysis_server/lib/src/context_manager.dart |
| @@ -477,10 +477,6 @@ class ContextManagerImpl implements ContextManager { |
| */ |
| final PubPackageMapProvider _packageMapProvider; |
| - /// Provider of analysis options. |
| - AnalysisOptionsProvider analysisOptionsProvider = |
| - new AnalysisOptionsProvider(); |
| - |
| /** |
| * A list of the globs used to determine which files should be analyzed. |
| */ |
| @@ -685,9 +681,19 @@ class ContextManagerImpl implements ContextManager { |
| * if exists, or in one of the parent folders, or `null` if no analysis |
| * options file is found or if the contents of the file are not valid YAML. |
| */ |
| - Map<String, Object> readOptions(Folder folder) { |
| + Map<String, Object> readOptions(Folder folder, Packages packages) { |
| try { |
| - return analysisOptionsProvider.getOptions(folder, crawlUp: true); |
| + Map<String, List<Folder>> packageMap = |
| + new ContextBuilder(resourceProvider, null, null) |
|
Brian Wilkerson
2016/11/17 20:06:42
Take a look at ContextManagerCallbacks.createConte
danrubel
2016/11/17 20:43:39
I'll leave this as is because this is temporary co
|
| + .convertPackagesToMap(packages); |
| + List<UriResolver> resolvers = <UriResolver>[ |
| + new ResourceUriResolver(resourceProvider), |
| + new PackageMapUriResolver(resourceProvider, packageMap), |
| + ]; |
| + SourceFactory sourceFactory = |
| + new SourceFactory(resolvers, packages, resourceProvider); |
| + return new AnalysisOptionsProvider(sourceFactory) |
| + .getOptions(folder, crawlUp: true); |
| } catch (_) { |
| // Parse errors are reported by GenerateOptionsErrorsTask. |
| } |
| @@ -916,7 +922,8 @@ class ContextManagerImpl implements ContextManager { |
| if (AnalysisEngine.isAnalysisOptionsFileName(path, pathContext)) { |
| var analysisContext = info.context; |
| if (analysisContext is context.AnalysisContextImpl) { |
| - Map<String, Object> options = readOptions(info.folder); |
| + Map<String, Object> options = |
| + readOptions(info.folder, info.disposition.packages); |
| processOptionsForContext(info, options, |
| optionsRemoved: changeType == ChangeType.REMOVE); |
| analysisContext.sourceFactory = _createSourceFactory( |
| @@ -1069,7 +1076,8 @@ class ContextManagerImpl implements ContextManager { |
| ContextInfo info = new ContextInfo(this, parent, folder, packagespecFile, |
| normalizedPackageRoots[folder.path], disposition); |
| - Map<String, Object> optionMap = readOptions(info.folder); |
| + Map<String, Object> optionMap = |
| + readOptions(info.folder, disposition.packages); |
| AnalysisOptions options = |
| new AnalysisOptionsImpl.from(defaultContextOptions); |
| applyToAnalysisOptions(options, optionMap); |