Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(390)

Side by Side Diff: pkg/analysis_server/lib/src/context_manager.dart

Issue 2076743002: Deprecate EmbedderUriResolver (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library context.directory.manager; 5 library context.directory.manager;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 import 'dart:convert'; 9 import 'dart:convert';
10 import 'dart:core' hide Resource; 10 import 'dart:core' hide Resource;
(...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 Map<Folder, YamlMap> embedderYamls = 894 Map<Folder, YamlMap> embedderYamls =
895 new EmbedderYamlLocator(packageMap).embedderYamls; 895 new EmbedderYamlLocator(packageMap).embedderYamls;
896 896
897 SourceFactory sourceFactory = info.context.sourceFactory; 897 SourceFactory sourceFactory = info.context.sourceFactory;
898 898
899 // Check for library embedders. 899 // Check for library embedders.
900 if (embedderYamls.values.any(definesEmbeddedLibs)) { 900 if (embedderYamls.values.any(definesEmbeddedLibs)) {
901 // If there is no embedded URI resolver, a new source factory needs to 901 // If there is no embedded URI resolver, a new source factory needs to
902 // be recreated. 902 // be recreated.
903 if (sourceFactory is SourceFactoryImpl) { 903 if (sourceFactory is SourceFactoryImpl) {
904 if (!sourceFactory.resolvers 904 // Get all but the dart: Uri resolver.
905 .any((UriResolver r) => r is EmbedderUriResolver)) { 905 List<UriResolver> resolvers = sourceFactory.resolvers
906 // Get all but the dart: Uri resolver. 906 .where((r) => r is! DartUriResolver)
907 List<UriResolver> resolvers = sourceFactory.resolvers 907 .toList();
908 .where((r) => r is! DartUriResolver) 908 // Add an embedded URI resolver in its place.
909 .toList(); 909 resolvers.add(new DartUriResolver(new EmbedderSdk(embedderYamls)));
910 // Add an embedded URI resolver in its place.
911 resolvers.add(new EmbedderUriResolver(embedderYamls));
912 910
913 // Set a new source factory. 911 // Set a new source factory.
914 SourceFactoryImpl newFactory = sourceFactory.clone(); 912 SourceFactoryImpl newFactory = sourceFactory.clone();
915 newFactory.resolvers.clear(); 913 newFactory.resolvers.clear();
916 newFactory.resolvers.addAll(resolvers); 914 newFactory.resolvers.addAll(resolvers);
917 info.context.sourceFactory = newFactory; 915 info.context.sourceFactory = newFactory;
918 return; 916 return;
919 }
920 } 917 }
921 } 918 }
922 919
923 // Next check for package URI updates. 920 // Next check for package URI updates.
924 if (info.isPathToPackageDescription(path)) { 921 if (info.isPathToPackageDescription(path)) {
925 Packages packages = _readPackagespec(packagespec); 922 Packages packages = _readPackagespec(packagespec);
926 if (packages != null) { 923 if (packages != null) {
927 _updateContextPackageUriResolver( 924 _updateContextPackageUriResolver(
928 folder, new PackagesFileDisposition(packages)); 925 folder, new PackagesFileDisposition(packages));
929 } 926 }
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 /** 1147 /**
1151 * Set up a [SourceFactory] that resolves packages as appropriate for the 1148 * Set up a [SourceFactory] that resolves packages as appropriate for the
1152 * given [disposition]. 1149 * given [disposition].
1153 */ 1150 */
1154 SourceFactory _createSourceFactory(InternalAnalysisContext context, 1151 SourceFactory _createSourceFactory(InternalAnalysisContext context,
1155 AnalysisOptions options, FolderDisposition disposition, Folder folder) { 1152 AnalysisOptions options, FolderDisposition disposition, Folder folder) {
1156 List<UriResolver> resolvers = []; 1153 List<UriResolver> resolvers = [];
1157 List<UriResolver> packageUriResolvers = 1154 List<UriResolver> packageUriResolvers =
1158 disposition.createPackageUriResolvers(resourceProvider); 1155 disposition.createPackageUriResolvers(resourceProvider);
1159 1156
1160 EmbedderUriResolver embedderUriResolver = 1157 EmbedderSdk sdk =
1161 new EmbedderUriResolver(context.embedderYamlLocator.embedderYamls); 1158 new EmbedderSdk(context.embedderYamlLocator.embedderYamls);
1162 if (embedderUriResolver.length == 0) { 1159 if (sdk.libraryMap.size() == 0) {
1163 // The embedder uri resolver has no mappings. Use the default Dart SDK 1160 // The embedder uri resolver has no mappings. Use the default Dart SDK
1164 // uri resolver. 1161 // uri resolver.
1165 resolvers.add(new DartUriResolver(sdkManager.getSdkForOptions(options))); 1162 resolvers.add(new DartUriResolver(sdkManager.getSdkForOptions(options)));
1166 } else { 1163 } else {
1167 // The embedder uri resolver has mappings, use it instead of the default 1164 // The embedder uri resolver has mappings, use it instead of the default
1168 // Dart SDK uri resolver. 1165 // Dart SDK uri resolver.
1169 resolvers.add(embedderUriResolver); 1166 resolvers.add(new DartUriResolver(sdk));
1170 } 1167 }
1171 1168
1172 resolvers.addAll(packageUriResolvers); 1169 resolvers.addAll(packageUriResolvers);
1173 resolvers.add(new ResourceUriResolver(resourceProvider)); 1170 resolvers.add(new ResourceUriResolver(resourceProvider));
1174 return new SourceFactory(resolvers, disposition.packages); 1171 return new SourceFactory(resolvers, disposition.packages);
1175 } 1172 }
1176 1173
1177 /** 1174 /**
1178 * Clean up and destroy the context associated with the given folder. 1175 * Clean up and destroy the context associated with the given folder.
1179 */ 1176 */
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 ResourceProvider resourceProvider) { 1814 ResourceProvider resourceProvider) {
1818 if (packages != null) { 1815 if (packages != null) {
1819 // Construct package map for the SdkExtUriResolver. 1816 // Construct package map for the SdkExtUriResolver.
1820 Map<String, List<Folder>> packageMap = buildPackageMap(resourceProvider); 1817 Map<String, List<Folder>> packageMap = buildPackageMap(resourceProvider);
1821 return <UriResolver>[new SdkExtUriResolver(packageMap)]; 1818 return <UriResolver>[new SdkExtUriResolver(packageMap)];
1822 } else { 1819 } else {
1823 return const <UriResolver>[]; 1820 return const <UriResolver>[];
1824 } 1821 }
1825 } 1822 }
1826 } 1823 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | pkg/analysis_server/test/context_manager_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698