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/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
8 import 'package:analyzer/dart/ast/token.dart'; | 8 import 'package:analyzer/dart/ast/token.dart'; |
9 import 'package:analyzer/dart/element/element.dart'; | 9 import 'package:analyzer/dart/element/element.dart'; |
10 import 'package:analyzer/dart/element/type.dart'; | 10 import 'package:analyzer/dart/element/type.dart'; |
(...skipping 21 matching lines...) Expand all Loading... |
32 * The analysis driver in which the files being edited were analyzed. | 32 * The analysis driver in which the files being edited were analyzed. |
33 */ | 33 */ |
34 final AnalysisDriver driver; | 34 final AnalysisDriver driver; |
35 | 35 |
36 /** | 36 /** |
37 * Initialize a newly created change builder. | 37 * Initialize a newly created change builder. |
38 */ | 38 */ |
39 DartChangeBuilderImpl(this.driver); | 39 DartChangeBuilderImpl(this.driver); |
40 | 40 |
41 @override | 41 @override |
| 42 Future<Null> addFileEdit(String path, int fileStamp, |
| 43 void buildFileEdit(DartFileEditBuilder builder)) => |
| 44 super.addFileEdit(path, fileStamp, buildFileEdit); |
| 45 |
| 46 @override |
42 Future<DartFileEditBuilderImpl> createFileEditBuilder( | 47 Future<DartFileEditBuilderImpl> createFileEditBuilder( |
43 String path, int fileStamp) async { | 48 String path, int fileStamp) async { |
44 AnalysisResult result = await driver.getResult(path); | 49 AnalysisResult result = await driver.getResult(path); |
45 return new DartFileEditBuilderImpl(this, path, fileStamp, result.unit); | 50 return new DartFileEditBuilderImpl(this, path, fileStamp, result.unit); |
46 } | 51 } |
47 } | 52 } |
48 | 53 |
49 /** | 54 /** |
50 * An [EditBuilder] used to build edits in Dart files. | 55 * An [EditBuilder] used to build edits in Dart files. |
51 */ | 56 */ |
52 class DartEditBuilderImpl extends EditBuilderImpl implements DartEditBuilder { | 57 class DartEditBuilderImpl extends EditBuilderImpl implements DartEditBuilder { |
53 List<String> _KNOWN_METHOD_NAME_PREFIXES = ['get', 'is', 'to']; | 58 List<String> _KNOWN_METHOD_NAME_PREFIXES = ['get', 'is', 'to']; |
54 | 59 |
55 /** | 60 /** |
56 * Initialize a newly created builder to build a source edit. | 61 * Initialize a newly created builder to build a source edit. |
57 */ | 62 */ |
58 DartEditBuilderImpl( | 63 DartEditBuilderImpl( |
59 DartFileEditBuilderImpl sourceFileEditBuilder, int offset, int length) | 64 DartFileEditBuilderImpl sourceFileEditBuilder, int offset, int length) |
60 : super(sourceFileEditBuilder, offset, length); | 65 : super(sourceFileEditBuilder, offset, length); |
61 | 66 |
62 DartFileEditBuilderImpl get dartFileEditBuilder => fileEditBuilder; | 67 DartFileEditBuilderImpl get dartFileEditBuilder => fileEditBuilder; |
63 | 68 |
64 @override | 69 @override |
| 70 void addLinkedEdit(String groupName, |
| 71 void buildLinkedEdit(DartLinkedEditBuilder builder)) => |
| 72 super.addLinkedEdit(groupName, buildLinkedEdit); |
| 73 |
| 74 @override |
65 LinkedEditBuilderImpl createLinkedEditBuilder() { | 75 LinkedEditBuilderImpl createLinkedEditBuilder() { |
66 return new DartLinkedEditBuilderImpl(this); | 76 return new DartLinkedEditBuilderImpl(this); |
67 } | 77 } |
68 | 78 |
69 /** | 79 /** |
70 * Returns the indentation with the given [level]. | 80 * Returns the indentation with the given [level]. |
71 */ | 81 */ |
72 String getIndent(int level) => ' ' * level; | 82 String getIndent(int level) => ' ' * level; |
73 | 83 |
74 /** | 84 /** |
(...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
964 /** | 974 /** |
965 * Initialize a newly created builder to build a source file edit within the | 975 * Initialize a newly created builder to build a source file edit within the |
966 * change being built by the given [changeBuilder]. The file being edited has | 976 * change being built by the given [changeBuilder]. The file being edited has |
967 * the given [source] and [timeStamp], and the given fully resolved [unit]. | 977 * the given [source] and [timeStamp], and the given fully resolved [unit]. |
968 */ | 978 */ |
969 DartFileEditBuilderImpl(DartChangeBuilderImpl changeBuilder, String path, | 979 DartFileEditBuilderImpl(DartChangeBuilderImpl changeBuilder, String path, |
970 int timeStamp, this.unit) | 980 int timeStamp, this.unit) |
971 : super(changeBuilder, path, timeStamp); | 981 : super(changeBuilder, path, timeStamp); |
972 | 982 |
973 @override | 983 @override |
| 984 void addInsertion(int offset, void buildEdit(DartEditBuilder builder)) => |
| 985 super.addInsertion(offset, buildEdit); |
| 986 |
| 987 @override |
| 988 void addReplacement( |
| 989 SourceRange range, void buildEdit(DartEditBuilder builder)) => |
| 990 super.addReplacement(range, buildEdit); |
| 991 |
| 992 @override |
974 void convertFunctionFromSyncToAsync( | 993 void convertFunctionFromSyncToAsync( |
975 FunctionBody body, TypeProvider typeProvider) { | 994 FunctionBody body, TypeProvider typeProvider) { |
976 if (body == null && body.keyword != null) { | 995 if (body == null && body.keyword != null) { |
977 throw new ArgumentError( | 996 throw new ArgumentError( |
978 'The function must have a synchronous, non-generator body.'); | 997 'The function must have a synchronous, non-generator body.'); |
979 } | 998 } |
980 addInsertion(body.offset, (EditBuilder builder) { | 999 addInsertion(body.offset, (EditBuilder builder) { |
981 builder.write('async '); | 1000 builder.write('async '); |
982 }); | 1001 }); |
983 _replaceReturnTypeWithFuture(body, typeProvider); | 1002 _replaceReturnTypeWithFuture(body, typeProvider); |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1307 } | 1326 } |
1308 } | 1327 } |
1309 | 1328 |
1310 class _InsertionDescription { | 1329 class _InsertionDescription { |
1311 final int offset; | 1330 final int offset; |
1312 final bool insertEmptyLineBefore; | 1331 final bool insertEmptyLineBefore; |
1313 final bool insertEmptyLineAfter; | 1332 final bool insertEmptyLineAfter; |
1314 _InsertionDescription( | 1333 _InsertionDescription( |
1315 this.offset, this.insertEmptyLineBefore, this.insertEmptyLineAfter); | 1334 this.offset, this.insertEmptyLineBefore, this.insertEmptyLineAfter); |
1316 } | 1335 } |
OLD | NEW |