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

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

Issue 2075663002: Remove hook for setting a provider for an 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;
11 11
12 import 'package:analysis_server/src/analysis_server.dart'; 12 import 'package:analysis_server/src/analysis_server.dart';
13 import 'package:analyzer/file_system/file_system.dart'; 13 import 'package:analyzer/file_system/file_system.dart';
14 import 'package:analyzer/instrumentation/instrumentation.dart'; 14 import 'package:analyzer/instrumentation/instrumentation.dart';
15 import 'package:analyzer/plugin/embedded_resolver_provider.dart';
16 import 'package:analyzer/plugin/options.dart'; 15 import 'package:analyzer/plugin/options.dart';
17 import 'package:analyzer/plugin/resolver_provider.dart'; 16 import 'package:analyzer/plugin/resolver_provider.dart';
18 import 'package:analyzer/source/analysis_options_provider.dart'; 17 import 'package:analyzer/source/analysis_options_provider.dart';
19 import 'package:analyzer/source/config.dart'; 18 import 'package:analyzer/source/config.dart';
20 import 'package:analyzer/source/embedder.dart'; 19 import 'package:analyzer/source/embedder.dart';
21 import 'package:analyzer/source/package_map_provider.dart'; 20 import 'package:analyzer/source/package_map_provider.dart';
22 import 'package:analyzer/source/package_map_resolver.dart'; 21 import 'package:analyzer/source/package_map_resolver.dart';
23 import 'package:analyzer/source/path_filter.dart'; 22 import 'package:analyzer/source/path_filter.dart';
24 import 'package:analyzer/source/pub_package_map_provider.dart'; 23 import 'package:analyzer/source/pub_package_map_provider.dart';
25 import 'package:analyzer/source/sdk_ext.dart'; 24 import 'package:analyzer/source/sdk_ext.dart';
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 * TODO(scheglov) remove [pathContext]. 400 * TODO(scheglov) remove [pathContext].
402 */ 401 */
403 AbsolutePathContext absolutePathContext; 402 AbsolutePathContext absolutePathContext;
404 403
405 /** 404 /**
406 * The context used to work with file system paths. 405 * The context used to work with file system paths.
407 */ 406 */
408 pathos.Context pathContext; 407 pathos.Context pathContext;
409 408
410 /** 409 /**
411 * A function that will return a [UriResolver] that can be used to resolve
412 * URI's for embedded libraries within a given folder, or `null` if we should
413 * fall back to the standard URI resolver.
414 */
415 final EmbeddedResolverProvider embeddedUriResolverProvider;
416
417 /**
418 * The list of excluded paths (folders and files) most recently passed to 410 * The list of excluded paths (folders and files) most recently passed to
419 * [setRoots]. 411 * [setRoots].
420 */ 412 */
421 List<String> excludedPaths = <String>[]; 413 List<String> excludedPaths = <String>[];
422 414
423 /** 415 /**
424 * The list of included paths (folders and files) most recently passed to 416 * The list of included paths (folders and files) most recently passed to
425 * [setRoots]. 417 * [setRoots].
426 */ 418 */
427 List<String> includedPaths = <String>[]; 419 List<String> includedPaths = <String>[];
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 * Stream subscription we are using to watch each analysis root directory for 481 * Stream subscription we are using to watch each analysis root directory for
490 * changes. 482 * changes.
491 */ 483 */
492 final Map<Folder, StreamSubscription<WatchEvent>> changeSubscriptions = 484 final Map<Folder, StreamSubscription<WatchEvent>> changeSubscriptions =
493 <Folder, StreamSubscription<WatchEvent>>{}; 485 <Folder, StreamSubscription<WatchEvent>>{};
494 486
495 ContextManagerImpl( 487 ContextManagerImpl(
496 this.resourceProvider, 488 this.resourceProvider,
497 this.sdkManager, 489 this.sdkManager,
498 this.packageResolverProvider, 490 this.packageResolverProvider,
499 this.embeddedUriResolverProvider,
500 this._packageMapProvider, 491 this._packageMapProvider,
501 this.analyzedFilesGlobs, 492 this.analyzedFilesGlobs,
502 this._instrumentationService, 493 this._instrumentationService,
503 this.defaultContextOptions) { 494 this.defaultContextOptions) {
504 absolutePathContext = resourceProvider.absolutePathContext; 495 absolutePathContext = resourceProvider.absolutePathContext;
505 pathContext = resourceProvider.pathContext; 496 pathContext = resourceProvider.pathContext;
506 } 497 }
507 498
508 @override 499 @override
509 Iterable<AnalysisContext> get analysisContexts => folderMap.values; 500 Iterable<AnalysisContext> get analysisContexts => folderMap.values;
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
1159 /** 1150 /**
1160 * Set up a [SourceFactory] that resolves packages as appropriate for the 1151 * Set up a [SourceFactory] that resolves packages as appropriate for the
1161 * given [disposition]. 1152 * given [disposition].
1162 */ 1153 */
1163 SourceFactory _createSourceFactory(InternalAnalysisContext context, 1154 SourceFactory _createSourceFactory(InternalAnalysisContext context,
1164 AnalysisOptions options, FolderDisposition disposition, Folder folder) { 1155 AnalysisOptions options, FolderDisposition disposition, Folder folder) {
1165 List<UriResolver> resolvers = []; 1156 List<UriResolver> resolvers = [];
1166 List<UriResolver> packageUriResolvers = 1157 List<UriResolver> packageUriResolvers =
1167 disposition.createPackageUriResolvers(resourceProvider); 1158 disposition.createPackageUriResolvers(resourceProvider);
1168 1159
1169 EmbedderUriResolver embedderUriResolver; 1160 EmbedderUriResolver embedderUriResolver =
1170
1171 // First check for a resolver provider.
1172 if (embeddedUriResolverProvider != null) {
1173 embedderUriResolver = embeddedUriResolverProvider(folder);
1174 }
1175
1176 // If no embedded URI resolver was provided, defer to a locator-backed one.
1177 embedderUriResolver ??=
1178 new EmbedderUriResolver(context.embedderYamlLocator.embedderYamls); 1161 new EmbedderUriResolver(context.embedderYamlLocator.embedderYamls);
1179 if (embedderUriResolver.length == 0) { 1162 if (embedderUriResolver.length == 0) {
1180 // The embedder uri resolver has no mappings. Use the default Dart SDK 1163 // The embedder uri resolver has no mappings. Use the default Dart SDK
1181 // uri resolver. 1164 // uri resolver.
1182 resolvers.add(new DartUriResolver(sdkManager.getSdkForOptions(options))); 1165 resolvers.add(new DartUriResolver(sdkManager.getSdkForOptions(options)));
1183 } else { 1166 } else {
1184 // The embedder uri resolver has mappings, use it instead of the default 1167 // The embedder uri resolver has mappings, use it instead of the default
1185 // Dart SDK uri resolver. 1168 // Dart SDK uri resolver.
1186 resolvers.add(embedderUriResolver); 1169 resolvers.add(embedderUriResolver);
1187 } 1170 }
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 ResourceProvider resourceProvider) { 1817 ResourceProvider resourceProvider) {
1835 if (packages != null) { 1818 if (packages != null) {
1836 // Construct package map for the SdkExtUriResolver. 1819 // Construct package map for the SdkExtUriResolver.
1837 Map<String, List<Folder>> packageMap = buildPackageMap(resourceProvider); 1820 Map<String, List<Folder>> packageMap = buildPackageMap(resourceProvider);
1838 return <UriResolver>[new SdkExtUriResolver(packageMap)]; 1821 return <UriResolver>[new SdkExtUriResolver(packageMap)];
1839 } else { 1822 } else {
1840 return const <UriResolver>[]; 1823 return const <UriResolver>[];
1841 } 1824 }
1842 } 1825 }
1843 } 1826 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | pkg/analysis_server/lib/src/server/driver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698