| OLD | NEW |
| 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/plugin/analysis/resolver_provider.dart'; | 12 import 'package:analysis_server/plugin/analysis/resolver_provider.dart'; |
| 13 import 'package:analysis_server/src/analysis_server.dart'; | 13 import 'package:analysis_server/src/analysis_server.dart'; |
| 14 import 'package:analyzer/file_system/file_system.dart'; | 14 import 'package:analyzer/file_system/file_system.dart'; |
| 15 import 'package:analyzer/instrumentation/instrumentation.dart'; | 15 import 'package:analyzer/instrumentation/instrumentation.dart'; |
| 16 import 'package:analyzer/plugin/options.dart'; | 16 import 'package:analyzer/plugin/options.dart'; |
| 17 import 'package:analyzer/source/analysis_options_provider.dart'; | 17 import 'package:analyzer/source/analysis_options_provider.dart'; |
| 18 import 'package:analyzer/source/embedder.dart'; | |
| 19 import 'package:analyzer/source/package_map_provider.dart'; | 18 import 'package:analyzer/source/package_map_provider.dart'; |
| 20 import 'package:analyzer/source/package_map_resolver.dart'; | 19 import 'package:analyzer/source/package_map_resolver.dart'; |
| 21 import 'package:analyzer/source/path_filter.dart'; | 20 import 'package:analyzer/source/path_filter.dart'; |
| 22 import 'package:analyzer/source/pub_package_map_provider.dart'; | 21 import 'package:analyzer/source/pub_package_map_provider.dart'; |
| 23 import 'package:analyzer/source/sdk_ext.dart'; | 22 import 'package:analyzer/source/sdk_ext.dart'; |
| 24 import 'package:analyzer/src/context/context.dart' as context; | 23 import 'package:analyzer/src/context/context.dart' as context; |
| 25 import 'package:analyzer/src/generated/engine.dart'; | 24 import 'package:analyzer/src/generated/engine.dart'; |
| 26 import 'package:analyzer/src/generated/java_engine.dart'; | 25 import 'package:analyzer/src/generated/java_engine.dart'; |
| 27 import 'package:analyzer/src/generated/java_io.dart'; | 26 import 'package:analyzer/src/generated/java_io.dart'; |
| 28 import 'package:analyzer/src/generated/source.dart'; | 27 import 'package:analyzer/src/generated/source.dart'; |
| (...skipping 1418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1447 } | 1446 } |
| 1448 | 1447 |
| 1449 /** | 1448 /** |
| 1450 * Concrete [FolderDisposition] object indicating that the context for a given | 1449 * Concrete [FolderDisposition] object indicating that the context for a given |
| 1451 * folder should resolve packages using a ".packages" file. | 1450 * folder should resolve packages using a ".packages" file. |
| 1452 */ | 1451 */ |
| 1453 class PackagesFileDisposition extends FolderDisposition { | 1452 class PackagesFileDisposition extends FolderDisposition { |
| 1454 @override | 1453 @override |
| 1455 final Packages packages; | 1454 final Packages packages; |
| 1456 | 1455 |
| 1456 PackagesFileDisposition(this.packages) {} |
| 1457 |
| 1458 @override |
| 1459 String get packageRoot => null; |
| 1460 |
| 1457 Map<String, List<Folder>> buildPackageMap(ResourceProvider resourceProvider) { | 1461 Map<String, List<Folder>> buildPackageMap(ResourceProvider resourceProvider) { |
| 1458 Map<String, List<Folder>> packageMap = <String, List<Folder>>{}; | 1462 Map<String, List<Folder>> packageMap = <String, List<Folder>>{}; |
| 1459 if (packages == null) { | 1463 if (packages == null) { |
| 1460 return packageMap; | 1464 return packageMap; |
| 1461 } | 1465 } |
| 1462 packages.asMap().forEach((String name, Uri uri) { | 1466 packages.asMap().forEach((String name, Uri uri) { |
| 1463 if (uri.scheme == 'file' || uri.scheme == '' /* unspecified */) { | 1467 if (uri.scheme == 'file' || uri.scheme == '' /* unspecified */) { |
| 1464 var path = resourceProvider.pathContext.fromUri(uri); | 1468 var path = resourceProvider.pathContext.fromUri(uri); |
| 1465 packageMap[name] = <Folder>[resourceProvider.getFolder(path)]; | 1469 packageMap[name] = <Folder>[resourceProvider.getFolder(path)]; |
| 1466 } | 1470 } |
| 1467 }); | 1471 }); |
| 1468 return packageMap; | 1472 return packageMap; |
| 1469 } | 1473 } |
| 1470 | 1474 |
| 1471 PackagesFileDisposition(this.packages) {} | |
| 1472 | |
| 1473 @override | |
| 1474 String get packageRoot => null; | |
| 1475 | |
| 1476 @override | 1475 @override |
| 1477 Iterable<UriResolver> createPackageUriResolvers( | 1476 Iterable<UriResolver> createPackageUriResolvers( |
| 1478 ResourceProvider resourceProvider) { | 1477 ResourceProvider resourceProvider) { |
| 1479 if (packages != null) { | 1478 if (packages != null) { |
| 1480 // Construct package map for the SdkExtUriResolver. | 1479 // Construct package map for the SdkExtUriResolver. |
| 1481 Map<String, List<Folder>> packageMap = | 1480 Map<String, List<Folder>> packageMap = buildPackageMap(resourceProvider); |
| 1482 buildPackageMap(resourceProvider); | |
| 1483 return <UriResolver>[new SdkExtUriResolver(packageMap)]; | 1481 return <UriResolver>[new SdkExtUriResolver(packageMap)]; |
| 1484 } else { | 1482 } else { |
| 1485 return const <UriResolver>[]; | 1483 return const <UriResolver>[]; |
| 1486 } | 1484 } |
| 1487 } | 1485 } |
| 1488 } | 1486 } |
| OLD | NEW |