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 import 'dart:core'; | 6 import 'dart:core'; |
7 | 7 |
8 import 'package:analysis_server/plugin/analysis/analysis_domain.dart'; | 8 import 'package:analysis_server/plugin/analysis/analysis_domain.dart'; |
9 import 'package:analysis_server/protocol/protocol_constants.dart'; | 9 import 'package:analysis_server/protocol/protocol_constants.dart'; |
10 import 'package:analysis_server/src/analysis_server.dart'; | 10 import 'package:analysis_server/src/analysis_server.dart'; |
11 import 'package:analysis_server/src/computer/computer_hover.dart'; | 11 import 'package:analysis_server/src/computer/computer_hover.dart'; |
| 12 import 'package:analysis_server/src/computer/imported_elements_computer.dart'; |
12 import 'package:analysis_server/src/domain_abstract.dart'; | 13 import 'package:analysis_server/src/domain_abstract.dart'; |
13 import 'package:analysis_server/src/domains/analysis/navigation.dart'; | 14 import 'package:analysis_server/src/domains/analysis/navigation.dart'; |
14 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart'; | 15 import 'package:analysis_server/src/domains/analysis/navigation_dart.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/request_converter.dart'; | 17 import 'package:analysis_server/src/plugin/request_converter.dart'; |
17 import 'package:analysis_server/src/plugin/result_merger.dart'; | 18 import 'package:analysis_server/src/plugin/result_merger.dart'; |
18 import 'package:analysis_server/src/protocol/protocol_internal.dart'; | 19 import 'package:analysis_server/src/protocol/protocol_internal.dart'; |
19 import 'package:analysis_server/src/protocol_server.dart'; | 20 import 'package:analysis_server/src/protocol_server.dart'; |
20 import 'package:analyzer/dart/ast/ast.dart'; | 21 import 'package:analyzer/dart/ast/ast.dart'; |
21 import 'package:analyzer/error/error.dart' as engine; | 22 import 'package:analyzer/error/error.dart' as engine; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 hovers.add(hoverInformation); | 94 hovers.add(hoverInformation); |
94 } | 95 } |
95 } | 96 } |
96 | 97 |
97 // Send the response. | 98 // Send the response. |
98 server.sendResponse( | 99 server.sendResponse( |
99 new AnalysisGetHoverResult(hovers).toResponse(request.id)); | 100 new AnalysisGetHoverResult(hovers).toResponse(request.id)); |
100 } | 101 } |
101 | 102 |
102 /** | 103 /** |
| 104 * Implement the `analysis.getImportedElements` request. |
| 105 */ |
| 106 Future<Null> getImportedElements(Request request) async { |
| 107 AnalysisGetImportedElementsParams params = |
| 108 new AnalysisGetImportedElementsParams.fromRequest(request); |
| 109 // |
| 110 // Prepare the resolved unit. |
| 111 // |
| 112 AnalysisResult result = await server.getAnalysisResult(params.file); |
| 113 if (result == null) { |
| 114 server.sendResponse(new Response.getImportedElementsInvalidFile(request)); |
| 115 } |
| 116 // |
| 117 // Compute the list of imported elements. |
| 118 // |
| 119 List<ImportedElements> elements = |
| 120 new ImportedElementsComputer(result.unit, params.offset, params.length) |
| 121 .compute(); |
| 122 // |
| 123 // Send the response. |
| 124 // |
| 125 server.sendResponse( |
| 126 new AnalysisGetImportedElementsResult(elements).toResponse(request.id)); |
| 127 } |
| 128 |
| 129 /** |
103 * Implement the `analysis.getLibraryDependencies` request. | 130 * Implement the `analysis.getLibraryDependencies` request. |
104 */ | 131 */ |
105 Response getLibraryDependencies(Request request) { | 132 Response getLibraryDependencies(Request request) { |
106 return new Response.unsupportedFeature(request.id, | 133 return new Response.unsupportedFeature(request.id, |
107 'Please contact the Dart analyzer team if you need this request.'); | 134 'Please contact the Dart analyzer team if you need this request.'); |
108 // server.onAnalysisComplete.then((_) { | 135 // server.onAnalysisComplete.then((_) { |
109 // LibraryDependencyCollector collector = | 136 // LibraryDependencyCollector collector = |
110 // new LibraryDependencyCollector(server.analysisContexts); | 137 // new LibraryDependencyCollector(server.analysisContexts); |
111 // Set<String> libraries = collector.collectLibraryDependencies(); | 138 // Set<String> libraries = collector.collectLibraryDependencies(); |
112 // Map<String, Map<String, List<String>>> packageMap = | 139 // Map<String, Map<String, List<String>>> packageMap = |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 @override | 236 @override |
210 Response handleRequest(Request request) { | 237 Response handleRequest(Request request) { |
211 try { | 238 try { |
212 String requestName = request.method; | 239 String requestName = request.method; |
213 if (requestName == ANALYSIS_REQUEST_GET_ERRORS) { | 240 if (requestName == ANALYSIS_REQUEST_GET_ERRORS) { |
214 getErrors(request); | 241 getErrors(request); |
215 return Response.DELAYED_RESPONSE; | 242 return Response.DELAYED_RESPONSE; |
216 } else if (requestName == ANALYSIS_REQUEST_GET_HOVER) { | 243 } else if (requestName == ANALYSIS_REQUEST_GET_HOVER) { |
217 getHover(request); | 244 getHover(request); |
218 return Response.DELAYED_RESPONSE; | 245 return Response.DELAYED_RESPONSE; |
| 246 } else if (requestName == ANALYSIS_REQUEST_GET_IMPORTED_ELEMENTS) { |
| 247 getImportedElements(request); |
| 248 return Response.DELAYED_RESPONSE; |
219 } else if (requestName == ANALYSIS_REQUEST_GET_LIBRARY_DEPENDENCIES) { | 249 } else if (requestName == ANALYSIS_REQUEST_GET_LIBRARY_DEPENDENCIES) { |
220 return getLibraryDependencies(request); | 250 return getLibraryDependencies(request); |
221 } else if (requestName == ANALYSIS_REQUEST_GET_NAVIGATION) { | 251 } else if (requestName == ANALYSIS_REQUEST_GET_NAVIGATION) { |
222 getNavigation(request); | 252 getNavigation(request); |
223 return Response.DELAYED_RESPONSE; | 253 return Response.DELAYED_RESPONSE; |
224 } else if (requestName == ANALYSIS_REQUEST_GET_REACHABLE_SOURCES) { | 254 } else if (requestName == ANALYSIS_REQUEST_GET_REACHABLE_SOURCES) { |
225 return getReachableSources(request); | 255 return getReachableSources(request); |
226 } else if (requestName == ANALYSIS_REQUEST_REANALYZE) { | 256 } else if (requestName == ANALYSIS_REQUEST_REANALYZE) { |
227 return reanalyze(request); | 257 return reanalyze(request); |
228 } else if (requestName == ANALYSIS_REQUEST_SET_ANALYSIS_ROOTS) { | 258 } else if (requestName == ANALYSIS_REQUEST_SET_ANALYSIS_ROOTS) { |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 | 460 |
431 AnalysisDomainImpl(this.server) { | 461 AnalysisDomainImpl(this.server) { |
432 // TODO(brianwilkerson) The onContextsChanged stream is no longer written to
. | 462 // TODO(brianwilkerson) The onContextsChanged stream is no longer written to
. |
433 // Figure out whether this code still needs to be here and convert it to use | 463 // Figure out whether this code still needs to be here and convert it to use |
434 // the analysis driver if it does. | 464 // the analysis driver if it does. |
435 // server.onContextsChanged.listen((ContextsChangedEvent event) { | 465 // server.onContextsChanged.listen((ContextsChangedEvent event) { |
436 // event.added.forEach(_subscribeForContext); | 466 // event.added.forEach(_subscribeForContext); |
437 // }); | 467 // }); |
438 } | 468 } |
439 } | 469 } |
OLD | NEW |