OLD | NEW |
---|---|
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 import 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:analyzer/dart/analysis/results.dart'; | |
8 import 'package:analyzer/dart/analysis/session.dart'; | |
7 import 'package:analyzer/dart/ast/ast.dart'; | 9 import 'package:analyzer/dart/ast/ast.dart'; |
8 import 'package:analyzer/dart/ast/token.dart'; | 10 import 'package:analyzer/dart/ast/token.dart'; |
9 import 'package:analyzer/dart/element/element.dart'; | 11 import 'package:analyzer/dart/element/element.dart'; |
10 import 'package:analyzer/dart/element/type.dart'; | 12 import 'package:analyzer/dart/element/type.dart'; |
11 import 'package:analyzer/src/dart/analysis/driver.dart'; | 13 import 'package:analyzer/exception/exception.dart'; |
12 import 'package:analyzer/src/dart/ast/utilities.dart'; | 14 import 'package:analyzer/src/dart/ast/utilities.dart'; |
13 import 'package:analyzer/src/dart/element/type.dart'; | 15 import 'package:analyzer/src/dart/element/type.dart'; |
14 import 'package:analyzer/src/generated/resolver.dart'; | 16 import 'package:analyzer/src/generated/resolver.dart'; |
15 import 'package:analyzer/src/generated/source.dart'; | 17 import 'package:analyzer/src/generated/source.dart'; |
16 import 'package:analyzer/src/generated/utilities_dart.dart'; | 18 import 'package:analyzer/src/generated/utilities_dart.dart'; |
17 import 'package:analyzer_plugin/protocol/protocol_common.dart' | 19 import 'package:analyzer_plugin/protocol/protocol_common.dart' |
18 hide Element, ElementKind; | 20 hide Element, ElementKind; |
19 import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core .dart'; | 21 import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core .dart'; |
20 import 'package:analyzer_plugin/src/utilities/string_utilities.dart'; | 22 import 'package:analyzer_plugin/src/utilities/string_utilities.dart'; |
21 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dar t'; | 23 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dar t'; |
22 import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dar t'; | 24 import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dar t'; |
23 import 'package:analyzer_plugin/utilities/range_factory.dart'; | 25 import 'package:analyzer_plugin/utilities/range_factory.dart'; |
24 import 'package:charcode/ascii.dart'; | 26 import 'package:charcode/ascii.dart'; |
25 import 'package:path/path.dart' as path; | 27 import 'package:path/path.dart' as path; |
26 | 28 |
27 /** | 29 /** |
28 * A [ChangeBuilder] used to build changes in Dart files. | 30 * A [ChangeBuilder] used to build changes in Dart files. |
29 */ | 31 */ |
30 class DartChangeBuilderImpl extends ChangeBuilderImpl | 32 class DartChangeBuilderImpl extends ChangeBuilderImpl |
31 implements DartChangeBuilder { | 33 implements DartChangeBuilder { |
32 /** | 34 /** |
33 * The analysis driver in which the files being edited were analyzed. | 35 * The analysis driver in which the files being edited were analyzed. |
scheglov
2017/07/02 16:59:44
driver -> session?
Brian Wilkerson
2017/07/03 15:41:22
Done
| |
34 */ | 36 */ |
35 final AnalysisDriver driver; | 37 final AnalysisSession session; |
36 | 38 |
37 /** | 39 /** |
38 * Initialize a newly created change builder. | 40 * Initialize a newly created change builder. |
39 */ | 41 */ |
40 DartChangeBuilderImpl(this.driver); | 42 DartChangeBuilderImpl(this.session); |
41 | 43 |
42 @override | 44 @override |
43 Future<Null> addFileEdit( | 45 Future<Null> addFileEdit( |
44 String path, void buildFileEdit(DartFileEditBuilder builder)) => | 46 String path, void buildFileEdit(DartFileEditBuilder builder)) => |
45 super.addFileEdit(path, buildFileEdit); | 47 super.addFileEdit(path, buildFileEdit); |
46 | 48 |
47 @override | 49 @override |
48 Future<DartFileEditBuilderImpl> createFileEditBuilder(String path) async { | 50 Future<DartFileEditBuilderImpl> createFileEditBuilder(String path) async { |
49 AnalysisResult result = await driver.getResult(path); | 51 ResolveResult result = await session.getResolvedAst(path); |
50 int timeStamp = driver.fsState.getFileForPath(path).exists ? 0 : -1; | 52 ResultState state = result.state; |
53 if (state == ResultState.INVALID_FILE_TYPE) { | |
54 throw new AnalysisException('Cannot analyze "$path"'); | |
55 } | |
56 int timeStamp = state == ResultState.VALID ? 0 : -1; | |
51 return new DartFileEditBuilderImpl(this, path, timeStamp, result.unit); | 57 return new DartFileEditBuilderImpl(this, path, timeStamp, result.unit); |
52 } | 58 } |
53 } | 59 } |
54 | 60 |
55 /** | 61 /** |
56 * An [EditBuilder] used to build edits in Dart files. | 62 * An [EditBuilder] used to build edits in Dart files. |
57 */ | 63 */ |
58 class DartEditBuilderImpl extends EditBuilderImpl implements DartEditBuilder { | 64 class DartEditBuilderImpl extends EditBuilderImpl implements DartEditBuilder { |
59 List<String> _KNOWN_METHOD_NAME_PREFIXES = ['get', 'is', 'to']; | 65 List<String> _KNOWN_METHOD_NAME_PREFIXES = ['get', 'is', 'to']; |
60 | 66 |
(...skipping 1326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1387 } | 1393 } |
1388 } | 1394 } |
1389 | 1395 |
1390 class _InsertionDescription { | 1396 class _InsertionDescription { |
1391 final int offset; | 1397 final int offset; |
1392 final bool insertEmptyLineBefore; | 1398 final bool insertEmptyLineBefore; |
1393 final bool insertEmptyLineAfter; | 1399 final bool insertEmptyLineAfter; |
1394 _InsertionDescription( | 1400 _InsertionDescription( |
1395 this.offset, this.insertEmptyLineBefore, this.insertEmptyLineAfter); | 1401 this.offset, this.insertEmptyLineBefore, this.insertEmptyLineAfter); |
1396 } | 1402 } |
OLD | NEW |