OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.src.utilities.change_builder_dart; | 5 library analysis_server.src.utilities.change_builder_dart; |
6 | 6 |
7 import 'package:analysis_server/src/protocol.dart' hide ElementKind; | 7 import 'package:analysis_server/src/protocol.dart' hide ElementKind; |
8 import 'package:analysis_server/src/services/correction/name_suggestion.dart'; | 8 import 'package:analysis_server/src/services/correction/name_suggestion.dart'; |
9 import 'package:analysis_server/src/services/correction/util.dart'; | 9 import 'package:analysis_server/src/services/correction/util.dart'; |
10 import 'package:analysis_server/src/utilities/change_builder_core.dart'; | 10 import 'package:analysis_server/src/utilities/change_builder_core.dart'; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 * Initialize a newly created builder to build a source edit. | 51 * Initialize a newly created builder to build a source edit. |
52 */ | 52 */ |
53 DartEditBuilderImpl( | 53 DartEditBuilderImpl( |
54 DartFileEditBuilderImpl sourceFileEditBuilder, int offset, int length) | 54 DartFileEditBuilderImpl sourceFileEditBuilder, int offset, int length) |
55 : utils = sourceFileEditBuilder.utils, | 55 : utils = sourceFileEditBuilder.utils, |
56 super(sourceFileEditBuilder, offset, length); | 56 super(sourceFileEditBuilder, offset, length); |
57 | 57 |
58 DartFileEditBuilderImpl get dartFileEditBuilder => fileEditBuilder; | 58 DartFileEditBuilderImpl get dartFileEditBuilder => fileEditBuilder; |
59 | 59 |
60 @override | 60 @override |
61 void writeClassDeclaration(String name, {Iterable<DartType> interfaces, | 61 void writeClassDeclaration(String name, |
62 bool isAbstract: false, void memberWriter(), Iterable<DartType> mixins, | 62 {Iterable<DartType> interfaces, |
63 String nameGroupName, DartType superclass}) { | 63 bool isAbstract: false, |
| 64 void memberWriter(), |
| 65 Iterable<DartType> mixins, |
| 66 String nameGroupName, |
| 67 DartType superclass}) { |
64 // TODO(brianwilkerson) Add support for type parameters, probably as a | 68 // TODO(brianwilkerson) Add support for type parameters, probably as a |
65 // parameterWriter parameter. | 69 // parameterWriter parameter. |
66 // TODO(brianwilkerson) Add a superclassGroupName parameter. | 70 // TODO(brianwilkerson) Add a superclassGroupName parameter. |
67 if (isAbstract) { | 71 if (isAbstract) { |
68 write(Keyword.ABSTRACT.syntax); | 72 write(Keyword.ABSTRACT.syntax); |
69 write(' '); | 73 write(' '); |
70 } | 74 } |
71 write('class '); | 75 write('class '); |
72 if (nameGroupName == null) { | 76 if (nameGroupName == null) { |
73 write(name); | 77 write(name); |
(...skipping 14 matching lines...) Expand all Loading... |
88 if (memberWriter != null) { | 92 if (memberWriter != null) { |
89 writeln(); | 93 writeln(); |
90 memberWriter(); | 94 memberWriter(); |
91 writeln(); | 95 writeln(); |
92 } | 96 } |
93 write('}'); | 97 write('}'); |
94 } | 98 } |
95 | 99 |
96 //@override | 100 //@override |
97 void writeConstructorDeclaration(ClassElement classElement, | 101 void writeConstructorDeclaration(ClassElement classElement, |
98 {ArgumentList argumentList, SimpleIdentifier constructorName, | 102 {ArgumentList argumentList, |
| 103 SimpleIdentifier constructorName, |
99 bool isConst: false}) { | 104 bool isConst: false}) { |
100 // TODO(brianwilkerson) Clean up the API and add it to the public API. | 105 // TODO(brianwilkerson) Clean up the API and add it to the public API. |
101 // | 106 // |
102 // TODO(brianwilkerson) Support passing a list of final fields rather than | 107 // TODO(brianwilkerson) Support passing a list of final fields rather than |
103 // an argument list. | 108 // an argument list. |
104 if (isConst) { | 109 if (isConst) { |
105 write(Keyword.CONST.syntax); | 110 write(Keyword.CONST.syntax); |
106 write(' '); | 111 write(' '); |
107 } | 112 } |
108 write(classElement.name); | 113 write(classElement.name); |
(...skipping 18 matching lines...) Expand all Loading... |
127 if (argumentList != null) { | 132 if (argumentList != null) { |
128 writeParametersMatchingArguments(argumentList); | 133 writeParametersMatchingArguments(argumentList); |
129 } else { | 134 } else { |
130 write('()'); | 135 write('()'); |
131 } | 136 } |
132 writeln(' {'); | 137 writeln(' {'); |
133 write(' }'); | 138 write(' }'); |
134 } | 139 } |
135 | 140 |
136 @override | 141 @override |
137 void writeFieldDeclaration(String name, {void initializerWriter(), | 142 void writeFieldDeclaration(String name, |
138 bool isConst: false, bool isFinal: false, bool isStatic: false, | 143 {void initializerWriter(), |
139 String nameGroupName, DartType type, String typeGroupName}) { | 144 bool isConst: false, |
| 145 bool isFinal: false, |
| 146 bool isStatic: false, |
| 147 String nameGroupName, |
| 148 DartType type, |
| 149 String typeGroupName}) { |
140 if (isStatic) { | 150 if (isStatic) { |
141 write(Keyword.STATIC.syntax); | 151 write(Keyword.STATIC.syntax); |
142 write(' '); | 152 write(' '); |
143 } | 153 } |
144 bool typeRequired = true; | 154 bool typeRequired = true; |
145 if (isConst) { | 155 if (isConst) { |
146 write(Keyword.CONST.syntax); | 156 write(Keyword.CONST.syntax); |
147 typeRequired = false; | 157 typeRequired = false; |
148 } else if (isFinal) { | 158 } else if (isFinal) { |
149 write(Keyword.FINAL.syntax); | 159 write(Keyword.FINAL.syntax); |
(...skipping 13 matching lines...) Expand all Loading... |
163 write(name); | 173 write(name); |
164 } | 174 } |
165 if (initializerWriter != null) { | 175 if (initializerWriter != null) { |
166 write(' = '); | 176 write(' = '); |
167 initializerWriter(); | 177 initializerWriter(); |
168 } | 178 } |
169 write(';'); | 179 write(';'); |
170 } | 180 } |
171 | 181 |
172 @override | 182 @override |
173 void writeGetterDeclaration(String name, {void bodyWriter(), | 183 void writeGetterDeclaration(String name, |
174 bool isStatic: false, String nameGroupName, DartType returnType, | 184 {void bodyWriter(), |
| 185 bool isStatic: false, |
| 186 String nameGroupName, |
| 187 DartType returnType, |
175 String returnTypeGroupName}) { | 188 String returnTypeGroupName}) { |
176 if (isStatic) { | 189 if (isStatic) { |
177 write(Keyword.STATIC.syntax); | 190 write(Keyword.STATIC.syntax); |
178 write(' '); | 191 write(' '); |
179 } | 192 } |
180 if (returnType != null) { | 193 if (returnType != null) { |
181 writeType(returnType, groupName: returnTypeGroupName); | 194 writeType(returnType, groupName: returnTypeGroupName); |
182 write(' '); | 195 write(' '); |
183 } | 196 } |
184 write(Keyword.GET.syntax); | 197 write(Keyword.GET.syntax); |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 } | 355 } |
343 | 356 |
344 @override | 357 @override |
345 void writeParameterSource(DartType type, String name) { | 358 void writeParameterSource(DartType type, String name) { |
346 String parameterSource = utils.getParameterSource( | 359 String parameterSource = utils.getParameterSource( |
347 type, name, dartFileEditBuilder.librariesToImport); | 360 type, name, dartFileEditBuilder.librariesToImport); |
348 write(parameterSource); | 361 write(parameterSource); |
349 } | 362 } |
350 | 363 |
351 @override | 364 @override |
352 bool writeType(DartType type, {bool addSupertypeProposals: false, | 365 bool writeType(DartType type, |
353 String groupName, bool required: false}) { | 366 {bool addSupertypeProposals: false, |
| 367 String groupName, |
| 368 bool required: false}) { |
354 if (type != null && !type.isDynamic) { | 369 if (type != null && !type.isDynamic) { |
355 String typeSource = | 370 String typeSource = |
356 utils.getTypeSource(type, dartFileEditBuilder.librariesToImport); | 371 utils.getTypeSource(type, dartFileEditBuilder.librariesToImport); |
357 if (groupName != null) { | 372 if (groupName != null) { |
358 addLinkedEdit(groupName, (LinkedEditBuilder builder) { | 373 addLinkedEdit(groupName, (LinkedEditBuilder builder) { |
359 write(typeSource); | 374 write(typeSource); |
360 if (addSupertypeProposals) { | 375 if (addSupertypeProposals) { |
361 _addSuperTypeProposals(builder, type, new Set<DartType>()); | 376 _addSuperTypeProposals(builder, type, new Set<DartType>()); |
362 } | 377 } |
363 }); | 378 }); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 } | 477 } |
463 unit = context.resolveCompilationUnit2(source, librariesContaining[0]); | 478 unit = context.resolveCompilationUnit2(source, librariesContaining[0]); |
464 utils = new CorrectionUtils(unit); | 479 utils = new CorrectionUtils(unit); |
465 } | 480 } |
466 | 481 |
467 @override | 482 @override |
468 DartEditBuilderImpl createEditBuilder(int offset, int length) { | 483 DartEditBuilderImpl createEditBuilder(int offset, int length) { |
469 return new DartEditBuilderImpl(this, offset, length); | 484 return new DartEditBuilderImpl(this, offset, length); |
470 } | 485 } |
471 } | 486 } |
OLD | NEW |