| 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 analysis.server; | 5 library analysis.server; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection'; | 8 import 'dart:collection'; |
| 9 import 'dart:core' hide Resource; | 9 import 'dart:core' hide Resource; |
| 10 import 'dart:io' as io; | 10 import 'dart:io' as io; |
| (...skipping 1665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1676 * Set up a [SourceFactory] that resolves packages as appropriate for the | 1676 * Set up a [SourceFactory] that resolves packages as appropriate for the |
| 1677 * given [disposition]. | 1677 * given [disposition]. |
| 1678 */ | 1678 */ |
| 1679 SourceFactory _createSourceFactory(InternalAnalysisContext context, | 1679 SourceFactory _createSourceFactory(InternalAnalysisContext context, |
| 1680 AnalysisOptions options, FolderDisposition disposition, Folder folder) { | 1680 AnalysisOptions options, FolderDisposition disposition, Folder folder) { |
| 1681 List<UriResolver> resolvers = []; | 1681 List<UriResolver> resolvers = []; |
| 1682 List<UriResolver> packageUriResolvers = | 1682 List<UriResolver> packageUriResolvers = |
| 1683 disposition.createPackageUriResolvers(resourceProvider); | 1683 disposition.createPackageUriResolvers(resourceProvider); |
| 1684 | 1684 |
| 1685 // If no embedded URI resolver was provided, defer to a locator-backed one. | 1685 // If no embedded URI resolver was provided, defer to a locator-backed one. |
| 1686 SdkExtensionFinder extFinder = |
| 1687 disposition.getSdkExtensionFinder(resourceProvider); |
| 1688 List<String> extFilePaths = extFinder.extensionFilePaths; |
| 1686 EmbedderYamlLocator locator = | 1689 EmbedderYamlLocator locator = |
| 1687 disposition.getEmbedderLocator(resourceProvider); | 1690 disposition.getEmbedderLocator(resourceProvider); |
| 1688 Map<Folder, YamlMap> embedderYamls = locator.embedderYamls; | 1691 Map<Folder, YamlMap> embedderYamls = locator.embedderYamls; |
| 1689 EmbedderSdk embedderSdk = new EmbedderSdk(resourceProvider, embedderYamls); | 1692 EmbedderSdk embedderSdk = new EmbedderSdk(resourceProvider, embedderYamls); |
| 1690 if (embedderSdk.libraryMap.size() == 0) { | 1693 if (embedderSdk.libraryMap.size() == 0) { |
| 1691 // There was no embedder file, or the file was empty, so used the default | 1694 // There was no embedder file, or the file was empty, so used the default |
| 1692 // SDK. | 1695 // SDK. |
| 1693 resolvers.add(new DartUriResolver( | 1696 resolvers.add(new DartUriResolver( |
| 1694 analysisServer.sdkManager.getSdkForOptions(options))); | 1697 analysisServer.sdkManager.getSdkForOptions(options))); |
| 1695 } else { | 1698 } else { |
| 1696 // The embedder file defines an alternate SDK, so use it. | 1699 // The embedder file defines an alternate SDK, so use it. |
| 1697 List<String> paths = <String>[]; | 1700 List<String> paths = <String>[]; |
| 1698 for (Folder folder in embedderYamls.keys) { | 1701 for (Folder folder in embedderYamls.keys) { |
| 1699 paths.add(folder | 1702 paths.add(folder |
| 1700 .getChildAssumingFile(EmbedderYamlLocator.EMBEDDER_FILE_NAME) | 1703 .getChildAssumingFile(EmbedderYamlLocator.EMBEDDER_FILE_NAME) |
| 1701 .path); | 1704 .path); |
| 1702 } | 1705 } |
| 1706 paths.addAll(extFilePaths); |
| 1703 DartSdk dartSdk = analysisServer.sdkManager | 1707 DartSdk dartSdk = analysisServer.sdkManager |
| 1704 .getSdk(new SdkDescription(paths, options), () { | 1708 .getSdk(new SdkDescription(paths, options), () { |
| 1709 if (extFilePaths.isNotEmpty) { |
| 1710 embedderSdk.addExtensions(extFinder.urlMappings); |
| 1711 } |
| 1705 embedderSdk.analysisOptions = options; | 1712 embedderSdk.analysisOptions = options; |
| 1706 // TODO(brianwilkerson) Enable summary use after we have decided where | 1713 // TODO(brianwilkerson) Enable summary use after we have decided where |
| 1707 // summary files for embedder files will live. | 1714 // summary files for embedder files will live. |
| 1708 embedderSdk.useSummary = false; | 1715 embedderSdk.useSummary = false; |
| 1709 return embedderSdk; | 1716 return embedderSdk; |
| 1710 }); | 1717 }); |
| 1711 resolvers.add(new DartUriResolver(dartSdk)); | 1718 resolvers.add(new DartUriResolver(dartSdk)); |
| 1712 } | 1719 } |
| 1713 | 1720 |
| 1714 resolvers.addAll(packageUriResolvers); | 1721 resolvers.addAll(packageUriResolvers); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1815 /** | 1822 /** |
| 1816 * The [PerformanceTag] for time spent in server request handlers. | 1823 * The [PerformanceTag] for time spent in server request handlers. |
| 1817 */ | 1824 */ |
| 1818 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); | 1825 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); |
| 1819 | 1826 |
| 1820 /** | 1827 /** |
| 1821 * The [PerformanceTag] for time spent in split store microtasks. | 1828 * The [PerformanceTag] for time spent in split store microtasks. |
| 1822 */ | 1829 */ |
| 1823 static PerformanceTag splitStore = new PerformanceTag('splitStore'); | 1830 static PerformanceTag splitStore = new PerformanceTag('splitStore'); |
| 1824 } | 1831 } |
| OLD | NEW |