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 import 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 7 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; |
8 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; | 8 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; |
9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; | 9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; |
10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; | 10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; |
11 import 'package:analysis_server/protocol/protocol_constants.dart'; | 11 import 'package:analysis_server/protocol/protocol_constants.dart'; |
12 import 'package:analysis_server/src/analysis_server.dart'; | 12 import 'package:analysis_server/src/analysis_server.dart'; |
13 import 'package:analysis_server/src/collections.dart'; | 13 import 'package:analysis_server/src/collections.dart'; |
| 14 import 'package:analysis_server/src/computer/import_elements_computer.dart'; |
14 import 'package:analysis_server/src/domain_abstract.dart'; | 15 import 'package:analysis_server/src/domain_abstract.dart'; |
15 import 'package:analysis_server/src/plugin/plugin_manager.dart'; | 16 import 'package:analysis_server/src/plugin/plugin_manager.dart'; |
16 import 'package:analysis_server/src/plugin/result_converter.dart'; | 17 import 'package:analysis_server/src/plugin/result_converter.dart'; |
17 import 'package:analysis_server/src/protocol_server.dart' hide Element; | 18 import 'package:analysis_server/src/protocol_server.dart' hide Element; |
18 import 'package:analysis_server/src/services/completion/postfix/postfix_completi
on.dart'; | 19 import 'package:analysis_server/src/services/completion/postfix/postfix_completi
on.dart'; |
19 import 'package:analysis_server/src/services/completion/statement/statement_comp
letion.dart'; | 20 import 'package:analysis_server/src/services/completion/statement/statement_comp
letion.dart'; |
20 import 'package:analysis_server/src/services/correction/assist_internal.dart'; | 21 import 'package:analysis_server/src/services/correction/assist_internal.dart'; |
21 import 'package:analysis_server/src/services/correction/fix_internal.dart'; | 22 import 'package:analysis_server/src/services/correction/fix_internal.dart'; |
22 import 'package:analysis_server/src/services/correction/organize_directives.dart
'; | 23 import 'package:analysis_server/src/services/correction/organize_directives.dart
'; |
23 import 'package:analysis_server/src/services/correction/sort_members.dart'; | 24 import 'package:analysis_server/src/services/correction/sort_members.dart'; |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 } else if (requestName == EDIT_REQUEST_GET_ASSISTS) { | 344 } else if (requestName == EDIT_REQUEST_GET_ASSISTS) { |
344 getAssists(request); | 345 getAssists(request); |
345 return Response.DELAYED_RESPONSE; | 346 return Response.DELAYED_RESPONSE; |
346 } else if (requestName == EDIT_REQUEST_GET_AVAILABLE_REFACTORINGS) { | 347 } else if (requestName == EDIT_REQUEST_GET_AVAILABLE_REFACTORINGS) { |
347 return _getAvailableRefactorings(request); | 348 return _getAvailableRefactorings(request); |
348 } else if (requestName == EDIT_REQUEST_GET_FIXES) { | 349 } else if (requestName == EDIT_REQUEST_GET_FIXES) { |
349 getFixes(request); | 350 getFixes(request); |
350 return Response.DELAYED_RESPONSE; | 351 return Response.DELAYED_RESPONSE; |
351 } else if (requestName == EDIT_REQUEST_GET_REFACTORING) { | 352 } else if (requestName == EDIT_REQUEST_GET_REFACTORING) { |
352 return _getRefactoring(request); | 353 return _getRefactoring(request); |
| 354 } else if (requestName == EDIT_REQUEST_IMPORT_ELEMENTS) { |
| 355 importElements(request); |
| 356 return Response.DELAYED_RESPONSE; |
353 } else if (requestName == EDIT_REQUEST_ORGANIZE_DIRECTIVES) { | 357 } else if (requestName == EDIT_REQUEST_ORGANIZE_DIRECTIVES) { |
354 organizeDirectives(request); | 358 organizeDirectives(request); |
355 return Response.DELAYED_RESPONSE; | 359 return Response.DELAYED_RESPONSE; |
356 } else if (requestName == EDIT_REQUEST_SORT_MEMBERS) { | 360 } else if (requestName == EDIT_REQUEST_SORT_MEMBERS) { |
357 sortMembers(request); | 361 sortMembers(request); |
358 return Response.DELAYED_RESPONSE; | 362 return Response.DELAYED_RESPONSE; |
359 } else if (requestName == EDIT_REQUEST_GET_STATEMENT_COMPLETION) { | 363 } else if (requestName == EDIT_REQUEST_GET_STATEMENT_COMPLETION) { |
360 getStatementCompletion(request); | 364 getStatementCompletion(request); |
361 return Response.DELAYED_RESPONSE; | 365 return Response.DELAYED_RESPONSE; |
362 } else if (requestName == EDIT_REQUEST_IS_POSTFIX_COMPLETION_APPLICABLE) { | 366 } else if (requestName == EDIT_REQUEST_IS_POSTFIX_COMPLETION_APPLICABLE) { |
363 isPostfixCompletionApplicable(request); | 367 isPostfixCompletionApplicable(request); |
364 return Response.DELAYED_RESPONSE; | 368 return Response.DELAYED_RESPONSE; |
365 } else if (requestName == EDIT_REQUEST_GET_POSTFIX_COMPLETION) { | 369 } else if (requestName == EDIT_REQUEST_GET_POSTFIX_COMPLETION) { |
366 getPostfixCompletion(request); | 370 getPostfixCompletion(request); |
367 return Response.DELAYED_RESPONSE; | 371 return Response.DELAYED_RESPONSE; |
368 } else if (requestName == | 372 } else if (requestName == |
369 EDIT_REQUEST_LIST_POSTFIX_COMPLETION_TEMPLATES) { | 373 EDIT_REQUEST_LIST_POSTFIX_COMPLETION_TEMPLATES) { |
370 listPostfixCompletionTemplates(request); | 374 listPostfixCompletionTemplates(request); |
371 return Response.DELAYED_RESPONSE; | 375 return Response.DELAYED_RESPONSE; |
372 } | 376 } |
373 } on RequestFailure catch (exception) { | 377 } on RequestFailure catch (exception) { |
374 return exception.response; | 378 return exception.response; |
375 } | 379 } |
376 return null; | 380 return null; |
377 } | 381 } |
378 | 382 |
| 383 /** |
| 384 * Implement the `edit.importElements` request. |
| 385 */ |
| 386 Future<Null> importElements(Request request) async { |
| 387 EditImportElementsParams params = |
| 388 new EditImportElementsParams.fromRequest(request); |
| 389 // |
| 390 // Prepare the resolved unit. |
| 391 // |
| 392 AnalysisResult result = await server.getAnalysisResult(params.file); |
| 393 if (result == null) { |
| 394 server.sendResponse(new Response.importElementsInvalidFile(request)); |
| 395 } |
| 396 // |
| 397 // Compute the edits required to import the required elements. |
| 398 // |
| 399 List<SourceEdit> edits = |
| 400 new ImportElementsComputer(result, params.file, params.elements) |
| 401 .compute(); |
| 402 // |
| 403 // Send the response. |
| 404 // |
| 405 server.sendResponse( |
| 406 new EditImportElementsResult(edits).toResponse(request.id)); |
| 407 } |
| 408 |
379 Future isPostfixCompletionApplicable(Request request) async { | 409 Future isPostfixCompletionApplicable(Request request) async { |
380 var params = new EditGetPostfixCompletionParams.fromRequest(request); | 410 var params = new EditGetPostfixCompletionParams.fromRequest(request); |
381 bool value = false; | 411 bool value = false; |
382 | 412 |
383 AnalysisResult result = await server.getAnalysisResult(params.file); | 413 AnalysisResult result = await server.getAnalysisResult(params.file); |
384 if (result != null) { | 414 if (result != null) { |
385 CompilationUnit unit = result.unit; | 415 CompilationUnit unit = result.unit; |
386 CompilationUnitElement unitElement = | 416 CompilationUnitElement unitElement = |
387 resolutionMap.elementDeclaredByCompilationUnit(unit); | 417 resolutionMap.elementDeclaredByCompilationUnit(unit); |
388 if (unitElement.context != null) { | 418 if (unitElement.context != null) { |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1023 } | 1053 } |
1024 return new RefactoringStatus(); | 1054 return new RefactoringStatus(); |
1025 } | 1055 } |
1026 } | 1056 } |
1027 | 1057 |
1028 /** | 1058 /** |
1029 * [_RefactoringManager] throws instances of this class internally to stop | 1059 * [_RefactoringManager] throws instances of this class internally to stop |
1030 * processing in a manager that was reset. | 1060 * processing in a manager that was reset. |
1031 */ | 1061 */ |
1032 class _ResetError {} | 1062 class _ResetError {} |
OLD | NEW |