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

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

Issue 2009303002: Embedder support refactoring (phase 1). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 7 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 899 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 // If there is no embedded URI resolver, a new source factory needs to 910 // If there is no embedded URI resolver, a new source factory needs to
911 // be recreated. 911 // be recreated.
912 if (sourceFactory is SourceFactoryImpl) { 912 if (sourceFactory is SourceFactoryImpl) {
913 if (!sourceFactory.resolvers 913 if (!sourceFactory.resolvers
914 .any((UriResolver r) => r is EmbedderUriResolver)) { 914 .any((UriResolver r) => r is EmbedderUriResolver)) {
915 // Get all but the dart: Uri resolver. 915 // Get all but the dart: Uri resolver.
916 List<UriResolver> resolvers = sourceFactory.resolvers 916 List<UriResolver> resolvers = sourceFactory.resolvers
917 .where((r) => r is! DartUriResolver) 917 .where((r) => r is! DartUriResolver)
918 .toList(); 918 .toList();
919 // Add an embedded URI resolver in its place. 919 // Add an embedded URI resolver in its place.
920 resolvers.add(new EmbedderUriResolver(embedderYamls)); 920 resolvers
921 .add(new EmbedderUriResolver(new EmbedderSdk(embedderYamls)));
921 922
922 // Set a new source factory. 923 // Set a new source factory.
923 SourceFactoryImpl newFactory = sourceFactory.clone(); 924 SourceFactoryImpl newFactory = sourceFactory.clone();
924 newFactory.resolvers.clear(); 925 newFactory.resolvers.clear();
925 newFactory.resolvers.addAll(resolvers); 926 newFactory.resolvers.addAll(resolvers);
926 info.context.sourceFactory = newFactory; 927 info.context.sourceFactory = newFactory;
927 return; 928 return;
928 } 929 }
929 } 930 }
930 } 931 }
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
1167 disposition.createPackageUriResolvers(resourceProvider); 1168 disposition.createPackageUriResolvers(resourceProvider);
1168 1169
1169 EmbedderUriResolver embedderUriResolver; 1170 EmbedderUriResolver embedderUriResolver;
1170 1171
1171 // First check for a resolver provider. 1172 // First check for a resolver provider.
1172 if (embeddedUriResolverProvider != null) { 1173 if (embeddedUriResolverProvider != null) {
1173 embedderUriResolver = embeddedUriResolverProvider(folder); 1174 embedderUriResolver = embeddedUriResolverProvider(folder);
1174 } 1175 }
1175 1176
1176 // If no embedded URI resolver was provided, defer to a locator-backed one. 1177 // If no embedded URI resolver was provided, defer to a locator-backed one.
1177 embedderUriResolver ??= 1178 embedderUriResolver ??= new EmbedderUriResolver(
1178 new EmbedderUriResolver(context.embedderYamlLocator.embedderYamls); 1179 new EmbedderSdk(context.embedderYamlLocator.embedderYamls));
1179 if (embedderUriResolver.length == 0) { 1180 if (embedderUriResolver.length == 0) {
1180 // The embedder uri resolver has no mappings. Use the default Dart SDK 1181 // The embedder uri resolver has no mappings. Use the default Dart SDK
1181 // uri resolver. 1182 // uri resolver.
1182 resolvers.add(new DartUriResolver(sdkManager.getSdkForOptions(options))); 1183 resolvers.add(new DartUriResolver(sdkManager.getSdkForOptions(options)));
1183 } else { 1184 } else {
1184 // The embedder uri resolver has mappings, use it instead of the default 1185 // The embedder uri resolver has mappings, use it instead of the default
1185 // Dart SDK uri resolver. 1186 // Dart SDK uri resolver.
1186 resolvers.add(embedderUriResolver); 1187 resolvers.add(embedderUriResolver);
1187 } 1188 }
1188 1189
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 ResourceProvider resourceProvider) { 1835 ResourceProvider resourceProvider) {
1835 if (packages != null) { 1836 if (packages != null) {
1836 // Construct package map for the SdkExtUriResolver. 1837 // Construct package map for the SdkExtUriResolver.
1837 Map<String, List<Folder>> packageMap = buildPackageMap(resourceProvider); 1838 Map<String, List<Folder>> packageMap = buildPackageMap(resourceProvider);
1838 return <UriResolver>[new SdkExtUriResolver(packageMap)]; 1839 return <UriResolver>[new SdkExtUriResolver(packageMap)];
1839 } else { 1840 } else {
1840 return const <UriResolver>[]; 1841 return const <UriResolver>[];
1841 } 1842 }
1842 } 1843 }
1843 } 1844 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698