| 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 5b461079773318456229eaf979e910950662b165..76e3ed9b2dc75579f96249260543488bb99c849a 100644
|
| --- a/pkg/analysis_server/lib/src/domain_analysis.dart
|
| +++ b/pkg/analysis_server/lib/src/domain_analysis.dart
|
| @@ -13,6 +13,7 @@ import 'package:analysis_server/src/protocol_server.dart';
|
| import 'package:analysis_server/src/services/dependencies/library_dependencies.dart';
|
| import 'package:analyzer/src/generated/ast.dart';
|
| import 'package:analyzer/src/generated/engine.dart' as engine;
|
| +import 'package:analyzer/file_system/file_system.dart';
|
|
|
| /**
|
| * Instances of the class [AnalysisDomainHandler] implement a [RequestHandler]
|
| @@ -136,7 +137,22 @@ class AnalysisDomainHandler implements RequestHandler {
|
| * Implement the 'analysis.reanalyze' request.
|
| */
|
| Response reanalyze(Request request) {
|
| - server.reanalyze();
|
| + AnalysisReanalyzeParams params = new AnalysisReanalyzeParams.fromRequest(request);
|
| + List<String> roots = params.roots;
|
| + if (roots == null || roots.isNotEmpty) {
|
| + List<String> includedPaths = server.contextDirectoryManager.includedPaths;
|
| + List<Resource> rootResources = null;
|
| + if (roots != null) {
|
| + rootResources = <Resource>[];
|
| + for (String rootPath in roots) {
|
| + if (!includedPaths.contains(rootPath)) {
|
| + return new Response.invalidAnalysisRoot(request, rootPath);
|
| + }
|
| + rootResources.add(server.resourceProvider.getResource(rootPath));
|
| + }
|
| + }
|
| + server.reanalyze(rootResources);
|
| + }
|
| return new AnalysisReanalyzeResult().toResponse(request.id);
|
| }
|
|
|
|
|