Index: pkg/analysis_server/lib/src/edit/edit_domain.dart |
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart |
index 13c0ebdeaa2b7d98630ddcc1131eed4a1b6b9320..0b7f232f2a00e49f90ae9a2098ae7c3834763801 100644 |
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart |
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart |
@@ -11,6 +11,7 @@ import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; |
import 'package:analysis_server/protocol/protocol_constants.dart'; |
import 'package:analysis_server/src/analysis_server.dart'; |
import 'package:analysis_server/src/collections.dart'; |
+import 'package:analysis_server/src/computer/import_elements_computer.dart'; |
import 'package:analysis_server/src/domain_abstract.dart'; |
import 'package:analysis_server/src/plugin/plugin_manager.dart'; |
import 'package:analysis_server/src/plugin/result_converter.dart'; |
@@ -350,6 +351,9 @@ class EditDomainHandler extends AbstractRequestHandler { |
return Response.DELAYED_RESPONSE; |
} else if (requestName == EDIT_REQUEST_GET_REFACTORING) { |
return _getRefactoring(request); |
+ } else if (requestName == EDIT_REQUEST_IMPORT_ELEMENTS) { |
+ importElements(request); |
+ return Response.DELAYED_RESPONSE; |
} else if (requestName == EDIT_REQUEST_ORGANIZE_DIRECTIVES) { |
organizeDirectives(request); |
return Response.DELAYED_RESPONSE; |
@@ -376,6 +380,32 @@ class EditDomainHandler extends AbstractRequestHandler { |
return null; |
} |
+ /** |
+ * Implement the `edit.importElements` request. |
+ */ |
+ Future<Null> importElements(Request request) async { |
+ EditImportElementsParams params = |
+ new EditImportElementsParams.fromRequest(request); |
+ // |
+ // Prepare the resolved unit. |
+ // |
+ AnalysisResult result = await server.getAnalysisResult(params.file); |
+ if (result == null) { |
+ server.sendResponse(new Response.importElementsInvalidFile(request)); |
+ } |
+ // |
+ // Compute the edits required to import the required elements. |
+ // |
+ List<SourceEdit> edits = |
+ new ImportElementsComputer(result, params.file, params.elements) |
+ .compute(); |
+ // |
+ // Send the response. |
+ // |
+ server.sendResponse( |
+ new EditImportElementsResult(edits).toResponse(request.id)); |
+ } |
+ |
Future isPostfixCompletionApplicable(Request request) async { |
var params = new EditGetPostfixCompletionParams.fromRequest(request); |
bool value = false; |