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 |