|
3 | 3 | // BSD-style license that can be found in the LICENSE file.
|
4 | 4 |
|
5 | 5 | import 'dart:async';
|
6 |
| -import 'dart:io'; |
7 | 6 |
|
8 |
| -import 'package:analyzer/file_system/file_system.dart' hide File; |
9 |
| -import 'package:analyzer/file_system/physical_file_system.dart'; |
10 |
| -import 'package:analyzer/src/source/package_map_resolver.dart'; |
11 |
| -import 'package:analyzer/src/source/pub_package_map_provider.dart'; |
12 |
| -import 'package:analyzer/src/dart/sdk/sdk.dart' show FolderBasedDartSdk; |
13 |
| -import 'package:analyzer/src/generated/engine.dart'; |
14 |
| -import 'package:analyzer/src/generated/source.dart'; |
15 |
| -import 'package:analyzer/src/generated/source_io.dart'; |
16 |
| -import 'package:path/path.dart' as p; |
| 7 | +import 'package:analyzer/dart/analysis/context_builder.dart'; |
| 8 | +import 'package:analyzer/dart/analysis/context_locator.dart'; |
| 9 | +import 'package:analyzer/dart/ast/ast.dart'; |
17 | 10 |
|
18 |
| -import 'test_utils.dart'; |
19 |
| - |
20 |
| -Future<AnalysisContext> analysisContextForProject() async { |
21 |
| - var sdkPath = p.dirname(p.dirname(Platform.resolvedExecutable)); |
22 |
| - |
23 |
| - var resourceProvider = PhysicalResourceProvider.INSTANCE; |
24 |
| - var sdk = new FolderBasedDartSdk( |
25 |
| - resourceProvider, resourceProvider.getFolder(sdkPath)); |
26 |
| - |
27 |
| - var dotPackagesPath = p.join(getPackagePath(), '.packages'); |
28 |
| - |
29 |
| - if (!FileSystemEntity.isFileSync(dotPackagesPath)) { |
30 |
| - throw new StateError('A package configuration file was not found at the ' |
31 |
| - 'expectetd location. $dotPackagesPath'); |
32 |
| - } |
33 |
| - |
34 |
| - var pubPackageMapProvider = |
35 |
| - new PubPackageMapProvider(PhysicalResourceProvider.INSTANCE, sdk); |
36 |
| - var packageMapInfo = pubPackageMapProvider.computePackageMap( |
37 |
| - PhysicalResourceProvider.INSTANCE.getResource(getPackagePath()) |
38 |
| - as Folder); |
39 |
| - var packageMap = packageMapInfo.packageMap; |
40 |
| - if (packageMap == null) { |
41 |
| - throw new StateError('An error occurred getting the package map.'); |
| 11 | +Future<CompilationUnit> resolveCompilationUnit(String path) async { |
| 12 | + var contextLocator = new ContextLocator(); |
| 13 | + var roots = contextLocator.locateRoots(includedPaths: [path]); |
| 14 | + if (roots.length != 1) { |
| 15 | + throw new StateError('Expected exactly one context root, got $roots'); |
42 | 16 | }
|
43 | 17 |
|
44 |
| - var packageResolver = |
45 |
| - new PackageMapUriResolver(PhysicalResourceProvider.INSTANCE, packageMap); |
46 |
| - |
47 |
| - var resolvers = [ |
48 |
| - new DartUriResolver(sdk), |
49 |
| - new ResourceUriResolver(PhysicalResourceProvider.INSTANCE), |
50 |
| - packageResolver |
51 |
| - ]; |
52 |
| - |
53 |
| - AnalysisEngine.instance.processRequiredPlugins(); |
54 |
| - |
55 |
| - var options = new AnalysisOptionsImpl() |
56 |
| - ..analyzeFunctionBodies = false |
57 |
| - ..strongMode = true |
58 |
| - ..previewDart2 = true; |
59 |
| - |
60 |
| - var context = AnalysisEngine.instance.createAnalysisContext() |
61 |
| - ..analysisOptions = options |
62 |
| - ..sourceFactory = new SourceFactory(resolvers); |
63 |
| - |
64 |
| - return context; |
| 18 | + var analysisContext = |
| 19 | + new ContextBuilder().createContext(contextRoot: roots.single); |
| 20 | + var resolveResult = await analysisContext.currentSession.getResolvedAst(path); |
| 21 | + return resolveResult.unit; |
65 | 22 | }
|
0 commit comments