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 edit.domain; | 5 library edit.domain; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; |
10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; | 10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; |
11 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; | 11 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; |
12 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; | 12 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; |
13 import 'package:analysis_server/src/analysis_server.dart'; | 13 import 'package:analysis_server/src/analysis_server.dart'; |
14 import 'package:analysis_server/src/collections.dart'; | 14 import 'package:analysis_server/src/collections.dart'; |
15 import 'package:analysis_server/src/constants.dart'; | 15 import 'package:analysis_server/src/constants.dart'; |
16 import 'package:analysis_server/src/protocol_server.dart' hide Element; | 16 import 'package:analysis_server/src/protocol_server.dart' hide Element; |
17 import 'package:analysis_server/src/services/completion/statement/statement_comp letion.dart'; | |
17 import 'package:analysis_server/src/services/correction/assist.dart'; | 18 import 'package:analysis_server/src/services/correction/assist.dart'; |
18 import 'package:analysis_server/src/services/correction/assist_internal.dart'; | 19 import 'package:analysis_server/src/services/correction/assist_internal.dart'; |
19 import 'package:analysis_server/src/services/correction/fix.dart'; | 20 import 'package:analysis_server/src/services/correction/fix.dart'; |
20 import 'package:analysis_server/src/services/correction/fix_internal.dart'; | 21 import 'package:analysis_server/src/services/correction/fix_internal.dart'; |
21 import 'package:analysis_server/src/services/correction/organize_directives.dart '; | 22 import 'package:analysis_server/src/services/correction/organize_directives.dart '; |
22 import 'package:analysis_server/src/services/correction/sort_members.dart'; | 23 import 'package:analysis_server/src/services/correction/sort_members.dart'; |
23 import 'package:analysis_server/src/services/correction/status.dart'; | 24 import 'package:analysis_server/src/services/correction/status.dart'; |
24 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; | 25 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; |
25 import 'package:analysis_server/src/services/search/search_engine.dart'; | 26 import 'package:analysis_server/src/services/search/search_engine.dart'; |
26 import 'package:analyzer/dart/ast/ast.dart'; | 27 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
242 } | 243 } |
243 } | 244 } |
244 } | 245 } |
245 } | 246 } |
246 | 247 |
247 // Send the response. | 248 // Send the response. |
248 server.sendResponse( | 249 server.sendResponse( |
249 new EditGetFixesResult(errorFixesList).toResponse(request.id)); | 250 new EditGetFixesResult(errorFixesList).toResponse(request.id)); |
250 } | 251 } |
251 | 252 |
253 Future getStatementCompletion(Request request) async { | |
254 var params = new EditGetStatementCompletionParams.fromRequest(request); | |
255 SourceChange change; | |
256 | |
257 server.contextManager.getContextFor(params.file); | |
258 server.contextManager.getDriverFor(params.file); | |
Brian Wilkerson
2017/04/07 19:17:14
Are the two lines above necessary because of a sid
scheglov
2017/04/07 19:36:07
I don't think these two statements are useful.
messick
2017/04/07 20:10:09
Done.
| |
259 AnalysisResult result = await server.getAnalysisResult(params.file); | |
260 if (result != null) { | |
261 CompilationUnit unit = result.unit; | |
262 CompilationUnitElement unitElement = | |
263 resolutionMap.elementDeclaredByCompilationUnit(unit); | |
264 if (unitElement.context != null) { | |
265 StatementCompletionContext context = new StatementCompletionContext( | |
266 unitElement, | |
267 params.offset, | |
268 result.lineInfo, | |
269 result.errors, | |
270 params.file, | |
271 unit); | |
272 StatementCompletionProcessor processor = | |
273 new StatementCompletionProcessor(context); | |
274 StatementCompletion completion = await processor.compute(); | |
275 change = completion.change; | |
276 } | |
277 } | |
278 if (change == null) { | |
279 change = new SourceChange("", edits: []); | |
Brian Wilkerson
2017/04/07 19:17:14
Consider using "??=".
| |
280 } | |
281 | |
282 Response response = new EditGetStatementCompletionResult(change, false) | |
283 .toResponse(request.id); | |
284 server.sendResponse(response); | |
285 } | |
286 | |
252 @override | 287 @override |
253 Response handleRequest(Request request) { | 288 Response handleRequest(Request request) { |
254 try { | 289 try { |
255 String requestName = request.method; | 290 String requestName = request.method; |
256 if (requestName == EDIT_FORMAT) { | 291 if (requestName == EDIT_FORMAT) { |
257 return format(request); | 292 return format(request); |
258 } else if (requestName == EDIT_GET_ASSISTS) { | 293 } else if (requestName == EDIT_GET_ASSISTS) { |
259 getAssists(request); | 294 getAssists(request); |
260 return Response.DELAYED_RESPONSE; | 295 return Response.DELAYED_RESPONSE; |
261 } else if (requestName == EDIT_GET_AVAILABLE_REFACTORINGS) { | 296 } else if (requestName == EDIT_GET_AVAILABLE_REFACTORINGS) { |
262 return _getAvailableRefactorings(request); | 297 return _getAvailableRefactorings(request); |
263 } else if (requestName == EDIT_GET_FIXES) { | 298 } else if (requestName == EDIT_GET_FIXES) { |
264 getFixes(request); | 299 getFixes(request); |
265 return Response.DELAYED_RESPONSE; | 300 return Response.DELAYED_RESPONSE; |
266 } else if (requestName == EDIT_GET_REFACTORING) { | 301 } else if (requestName == EDIT_GET_REFACTORING) { |
267 return _getRefactoring(request); | 302 return _getRefactoring(request); |
268 } else if (requestName == EDIT_ORGANIZE_DIRECTIVES) { | 303 } else if (requestName == EDIT_ORGANIZE_DIRECTIVES) { |
269 organizeDirectives(request); | 304 organizeDirectives(request); |
270 return Response.DELAYED_RESPONSE; | 305 return Response.DELAYED_RESPONSE; |
271 } else if (requestName == EDIT_SORT_MEMBERS) { | 306 } else if (requestName == EDIT_SORT_MEMBERS) { |
272 sortMembers(request); | 307 sortMembers(request); |
273 return Response.DELAYED_RESPONSE; | 308 return Response.DELAYED_RESPONSE; |
309 } else if (requestName == EDIT_GET_STATEMENT_COMPLETION) { | |
310 getStatementCompletion(request); | |
311 return Response.DELAYED_RESPONSE; | |
274 } | 312 } |
275 } on RequestFailure catch (exception) { | 313 } on RequestFailure catch (exception) { |
276 return exception.response; | 314 return exception.response; |
277 } | 315 } |
278 return null; | 316 return null; |
279 } | 317 } |
280 | 318 |
281 Future<Null> organizeDirectives(Request request) async { | 319 Future<Null> organizeDirectives(Request request) async { |
282 var params = new EditOrganizeDirectivesParams.fromRequest(request); | 320 var params = new EditOrganizeDirectivesParams.fromRequest(request); |
283 // prepare file | 321 // prepare file |
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
971 } | 1009 } |
972 return new RefactoringStatus(); | 1010 return new RefactoringStatus(); |
973 } | 1011 } |
974 } | 1012 } |
975 | 1013 |
976 /** | 1014 /** |
977 * [_RefactoringManager] throws instances of this class internally to stop | 1015 * [_RefactoringManager] throws instances of this class internally to stop |
978 * processing in a manager that was reset. | 1016 * processing in a manager that was reset. |
979 */ | 1017 */ |
980 class _ResetError {} | 1018 class _ResetError {} |
OLD | NEW |