Index: pkg/analysis_server/lib/src/domain_analysis.dart |
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart |
index eb75faacdb19bf845e022a1e7a51a6cba44a99f1..3af1c06cc7b4107d457e1f9a620d0ec38dacd1df 100644 |
--- a/pkg/analysis_server/lib/src/domain_analysis.dart |
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart |
@@ -9,6 +9,7 @@ import 'package:analysis_server/plugin/analysis/analysis_domain.dart'; |
import 'package:analysis_server/protocol/protocol_constants.dart'; |
import 'package:analysis_server/src/analysis_server.dart'; |
import 'package:analysis_server/src/computer/computer_hover.dart'; |
+import 'package:analysis_server/src/computer/imported_elements_computer.dart'; |
import 'package:analysis_server/src/domain_abstract.dart'; |
import 'package:analysis_server/src/domains/analysis/navigation.dart'; |
import 'package:analysis_server/src/domains/analysis/navigation_dart.dart'; |
@@ -100,6 +101,32 @@ class AnalysisDomainHandler extends AbstractRequestHandler { |
} |
/** |
+ * Implement the `analysis.getImportedElements` request. |
+ */ |
+ Future<Null> getImportedElements(Request request) async { |
+ AnalysisGetImportedElementsParams params = |
+ new AnalysisGetImportedElementsParams.fromRequest(request); |
+ // |
+ // Prepare the resolved unit. |
+ // |
+ AnalysisResult result = await server.getAnalysisResult(params.file); |
+ if (result == null) { |
+ server.sendResponse(new Response.getImportedElementsInvalidFile(request)); |
+ } |
+ // |
+ // Compute the list of imported elements. |
+ // |
+ List<ImportedElements> elements = |
+ new ImportedElementsComputer(result.unit, params.offset, params.length) |
+ .compute(); |
+ // |
+ // Send the response. |
+ // |
+ server.sendResponse( |
+ new AnalysisGetImportedElementsResult(elements).toResponse(request.id)); |
+ } |
+ |
+ /** |
* Implement the `analysis.getLibraryDependencies` request. |
*/ |
Response getLibraryDependencies(Request request) { |
@@ -216,6 +243,9 @@ class AnalysisDomainHandler extends AbstractRequestHandler { |
} else if (requestName == ANALYSIS_REQUEST_GET_HOVER) { |
getHover(request); |
return Response.DELAYED_RESPONSE; |
+ } else if (requestName == ANALYSIS_REQUEST_GET_IMPORTED_ELEMENTS) { |
+ getImportedElements(request); |
+ return Response.DELAYED_RESPONSE; |
} else if (requestName == ANALYSIS_REQUEST_GET_LIBRARY_DEPENDENCIES) { |
return getLibraryDependencies(request); |
} else if (requestName == ANALYSIS_REQUEST_GET_NAVIGATION) { |