| 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 if (pair.context == null || pair.source == null) { |
| 176 return new Response.getReachableSourcesInvalidFile(request); |
| 177 } |
| 178 Map<String, List<String>> sources = new ReachableSourceCollector( |
| 179 pair.source, pair.context).collectSources(); |
| 180 return new AnalysisGetReachableSourcesResult(sources) |
| 181 .toResponse(request.id); |
| 182 } |
| 183 |
| 167 @override | 184 @override |
| 168 Response handleRequest(Request request) { | 185 Response handleRequest(Request request) { |
| 169 try { | 186 try { |
| 170 String requestName = request.method; | 187 String requestName = request.method; |
| 171 if (requestName == ANALYSIS_GET_ERRORS) { | 188 if (requestName == ANALYSIS_GET_ERRORS) { |
| 172 return getErrors(request); | 189 return getErrors(request); |
| 173 } else if (requestName == ANALYSIS_GET_HOVER) { | 190 } else if (requestName == ANALYSIS_GET_HOVER) { |
| 174 return getHover(request); | 191 return getHover(request); |
| 175 } else if (requestName == ANALYSIS_GET_LIBRARY_DEPENDENCIES) { | 192 } else if (requestName == ANALYSIS_GET_LIBRARY_DEPENDENCIES) { |
| 176 return getLibraryDependencies(request); | 193 return getLibraryDependencies(request); |
| 177 } else if (requestName == ANALYSIS_GET_NAVIGATION) { | 194 } else if (requestName == ANALYSIS_GET_NAVIGATION) { |
| 178 return getNavigation(request); | 195 return getNavigation(request); |
| 196 } else if (requestName == ANALYSIS_GET_REACHABLE_SOURCES) { |
| 197 return getReachableSources(request); |
| 179 } else if (requestName == ANALYSIS_REANALYZE) { | 198 } else if (requestName == ANALYSIS_REANALYZE) { |
| 180 return reanalyze(request); | 199 return reanalyze(request); |
| 181 } else if (requestName == ANALYSIS_SET_ANALYSIS_ROOTS) { | 200 } else if (requestName == ANALYSIS_SET_ANALYSIS_ROOTS) { |
| 182 return setAnalysisRoots(request); | 201 return setAnalysisRoots(request); |
| 183 } else if (requestName == ANALYSIS_SET_GENERAL_SUBSCRIPTIONS) { | 202 } else if (requestName == ANALYSIS_SET_GENERAL_SUBSCRIPTIONS) { |
| 184 return setGeneralSubscriptions(request); | 203 return setGeneralSubscriptions(request); |
| 185 } else if (requestName == ANALYSIS_SET_PRIORITY_FILES) { | 204 } else if (requestName == ANALYSIS_SET_PRIORITY_FILES) { |
| 186 return setPriorityFiles(request); | 205 return setPriorityFiles(request); |
| 187 } else if (requestName == ANALYSIS_SET_SUBSCRIPTIONS) { | 206 } else if (requestName == ANALYSIS_SET_SUBSCRIPTIONS) { |
| 188 return setSubscriptions(request); | 207 return setSubscriptions(request); |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 context.onResultComputed(descriptor).listen((result) { | 386 context.onResultComputed(descriptor).listen((result) { |
| 368 StreamController<engine.ComputedResult> controller = | 387 StreamController<engine.ComputedResult> controller = |
| 369 controllers[result.descriptor]; | 388 controllers[result.descriptor]; |
| 370 if (controller != null) { | 389 if (controller != null) { |
| 371 controller.add(result); | 390 controller.add(result); |
| 372 } | 391 } |
| 373 }); | 392 }); |
| 374 } | 393 } |
| 375 } | 394 } |
| 376 } | 395 } |
| OLD | NEW |