| 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 domain.analysis; | 5 library domain.analysis; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:core' hide Resource; | 8 import 'dart:core' hide Resource; |
| 9 | 9 |
| 10 import 'package:analysis_server/plugin/analysis/analysis_domain.dart'; | 10 import 'package:analysis_server/plugin/analysis/analysis_domain.dart'; |
| 11 import 'package:analysis_server/src/analysis_server.dart'; | 11 import 'package:analysis_server/src/analysis_server.dart'; |
| 12 import 'package:analysis_server/src/computer/computer_hover.dart'; | 12 import 'package:analysis_server/src/computer/computer_hover.dart'; |
| 13 import 'package:analysis_server/src/constants.dart'; | 13 import 'package:analysis_server/src/constants.dart'; |
| 14 import 'package:analysis_server/src/context_manager.dart'; | 14 import 'package:analysis_server/src/context_manager.dart'; |
| 15 import 'package:analysis_server/src/domains/analysis/navigation.dart'; | 15 import 'package:analysis_server/src/domains/analysis/navigation.dart'; |
| 16 import 'package:analysis_server/src/operation/operation_analysis.dart' | 16 import 'package:analysis_server/src/operation/operation_analysis.dart' |
| 17 show | 17 show |
| 18 NavigationOperation, | 18 NavigationOperation, |
| 19 OccurrencesOperation, | 19 OccurrencesOperation, |
| 20 sendAnalysisNotificationNavigation; | 20 sendAnalysisNotificationNavigation; |
| 21 import 'package:analysis_server/src/protocol/protocol_internal.dart'; | 21 import 'package:analysis_server/src/protocol/protocol_internal.dart'; |
| 22 import 'package:analysis_server/src/protocol_server.dart'; | 22 import 'package:analysis_server/src/protocol_server.dart'; |
| 23 import 'package:analysis_server/src/services/dependencies/library_dependencies.d
art'; | 23 import 'package:analysis_server/src/services/dependencies/library_dependencies.d
art'; |
| 24 import 'package:analysis_server/src/services/dependencies/reachable_source_colle
ctor.dart'; |
| 24 import 'package:analyzer/file_system/file_system.dart'; | 25 import 'package:analyzer/file_system/file_system.dart'; |
| 25 import 'package:analyzer/src/generated/ast.dart'; | 26 import 'package:analyzer/src/generated/ast.dart'; |
| 26 import 'package:analyzer/src/generated/element.dart'; | 27 import 'package:analyzer/src/generated/element.dart'; |
| 27 import 'package:analyzer/src/generated/engine.dart' as engine; | 28 import 'package:analyzer/src/generated/engine.dart' as engine; |
| 28 import 'package:analyzer/src/generated/java_engine.dart' show CaughtException; | 29 import 'package:analyzer/src/generated/java_engine.dart' show CaughtException; |
| 29 import 'package:analyzer/src/generated/source.dart'; | 30 import 'package:analyzer/src/generated/source.dart'; |
| 30 import 'package:analyzer/task/model.dart' show ResultDescriptor; | 31 import 'package:analyzer/task/model.dart' show ResultDescriptor; |
| 31 | 32 |
| 32 /** | 33 /** |
| 33 * Instances of the class [AnalysisDomainHandler] implement a [RequestHandler] | 34 * Instances of the class [AnalysisDomainHandler] implement a [RequestHandler] |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 if (response != Response.DELAYED_RESPONSE) { | 158 if (response != Response.DELAYED_RESPONSE) { |
| 158 server.sendResponse(response); | 159 server.sendResponse(response); |
| 159 } | 160 } |
| 160 break; | 161 break; |
| 161 } | 162 } |
| 162 }); | 163 }); |
| 163 // delay response | 164 // delay response |
| 164 return Response.DELAYED_RESPONSE; | 165 return Response.DELAYED_RESPONSE; |
| 165 } | 166 } |
| 166 | 167 |
| 168 /** |
| 169 * Implement the `analysis.getReachableSources` request. |
| 170 */ |
| 171 Response getReachableSources(Request request) { |
| 172 AnalysisGetReachableSourcesParams params = |
| 173 new AnalysisGetReachableSourcesParams.fromRequest(request); |
| 174 ContextSourcePair pair = server.getContextSourcePair(params.file); |
| 175 Map<String, List<String>> sources = new ReachableSourceCollector( |
| 176 pair.source, pair.context).collectSources(); |
| 177 return new AnalysisGetReachableSourcesResult(sources) |
| 178 .toResponse(request.id); |
| 179 } |
| 180 |
| 167 @override | 181 @override |
| 168 Response handleRequest(Request request) { | 182 Response handleRequest(Request request) { |
| 169 try { | 183 try { |
| 170 String requestName = request.method; | 184 String requestName = request.method; |
| 171 if (requestName == ANALYSIS_GET_ERRORS) { | 185 if (requestName == ANALYSIS_GET_ERRORS) { |
| 172 return getErrors(request); | 186 return getErrors(request); |
| 173 } else if (requestName == ANALYSIS_GET_HOVER) { | 187 } else if (requestName == ANALYSIS_GET_HOVER) { |
| 174 return getHover(request); | 188 return getHover(request); |
| 175 } else if (requestName == ANALYSIS_GET_LIBRARY_DEPENDENCIES) { | 189 } else if (requestName == ANALYSIS_GET_LIBRARY_DEPENDENCIES) { |
| 176 return getLibraryDependencies(request); | 190 return getLibraryDependencies(request); |
| 177 } else if (requestName == ANALYSIS_GET_NAVIGATION) { | 191 } else if (requestName == ANALYSIS_GET_NAVIGATION) { |
| 178 return getNavigation(request); | 192 return getNavigation(request); |
| 193 } else if (requestName == ANALYSIS_GET_REACHABLE_SOURCES) { |
| 194 return getReachableSources(request); |
| 179 } else if (requestName == ANALYSIS_REANALYZE) { | 195 } else if (requestName == ANALYSIS_REANALYZE) { |
| 180 return reanalyze(request); | 196 return reanalyze(request); |
| 181 } else if (requestName == ANALYSIS_SET_ANALYSIS_ROOTS) { | 197 } else if (requestName == ANALYSIS_SET_ANALYSIS_ROOTS) { |
| 182 return setAnalysisRoots(request); | 198 return setAnalysisRoots(request); |
| 183 } else if (requestName == ANALYSIS_SET_GENERAL_SUBSCRIPTIONS) { | 199 } else if (requestName == ANALYSIS_SET_GENERAL_SUBSCRIPTIONS) { |
| 184 return setGeneralSubscriptions(request); | 200 return setGeneralSubscriptions(request); |
| 185 } else if (requestName == ANALYSIS_SET_PRIORITY_FILES) { | 201 } else if (requestName == ANALYSIS_SET_PRIORITY_FILES) { |
| 186 return setPriorityFiles(request); | 202 return setPriorityFiles(request); |
| 187 } else if (requestName == ANALYSIS_SET_SUBSCRIPTIONS) { | 203 } else if (requestName == ANALYSIS_SET_SUBSCRIPTIONS) { |
| 188 return setSubscriptions(request); | 204 return setSubscriptions(request); |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 context.onResultComputed(descriptor).listen((result) { | 383 context.onResultComputed(descriptor).listen((result) { |
| 368 StreamController<engine.ComputedResult> controller = | 384 StreamController<engine.ComputedResult> controller = |
| 369 controllers[result.descriptor]; | 385 controllers[result.descriptor]; |
| 370 if (controller != null) { | 386 if (controller != null) { |
| 371 controller.add(result); | 387 controller.add(result); |
| 372 } | 388 } |
| 373 }); | 389 }); |
| 374 } | 390 } |
| 375 } | 391 } |
| 376 } | 392 } |
| OLD | NEW |