| 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'; |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 /** | 168 /** |
| 169 * Implement the `analysis.getReachableSources` request. | 169 * Implement the `analysis.getReachableSources` request. |
| 170 */ | 170 */ |
| 171 Response getReachableSources(Request request) { | 171 Response getReachableSources(Request request) { |
| 172 AnalysisGetReachableSourcesParams params = | 172 AnalysisGetReachableSourcesParams params = |
| 173 new AnalysisGetReachableSourcesParams.fromRequest(request); | 173 new AnalysisGetReachableSourcesParams.fromRequest(request); |
| 174 ContextSourcePair pair = server.getContextSourcePair(params.file); | 174 ContextSourcePair pair = server.getContextSourcePair(params.file); |
| 175 if (pair.context == null || pair.source == null) { | 175 if (pair.context == null || pair.source == null) { |
| 176 return new Response.getReachableSourcesInvalidFile(request); | 176 return new Response.getReachableSourcesInvalidFile(request); |
| 177 } | 177 } |
| 178 Map<String, List<String>> sources = new ReachableSourceCollector( | 178 Map<String, List<String>> sources = |
| 179 pair.source, pair.context).collectSources(); | 179 new ReachableSourceCollector(pair.source, pair.context) |
| 180 .collectSources(); |
| 180 return new AnalysisGetReachableSourcesResult(sources) | 181 return new AnalysisGetReachableSourcesResult(sources) |
| 181 .toResponse(request.id); | 182 .toResponse(request.id); |
| 182 } | 183 } |
| 183 | 184 |
| 184 @override | 185 @override |
| 185 Response handleRequest(Request request) { | 186 Response handleRequest(Request request) { |
| 186 try { | 187 try { |
| 187 String requestName = request.method; | 188 String requestName = request.method; |
| 188 if (requestName == ANALYSIS_GET_ERRORS) { | 189 if (requestName == ANALYSIS_GET_ERRORS) { |
| 189 return getErrors(request); | 190 return getErrors(request); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 server.reanalyze(rootResources); | 239 server.reanalyze(rootResources); |
| 239 } | 240 } |
| 240 return new AnalysisReanalyzeResult().toResponse(request.id); | 241 return new AnalysisReanalyzeResult().toResponse(request.id); |
| 241 } | 242 } |
| 242 | 243 |
| 243 /** | 244 /** |
| 244 * Implement the 'analysis.setAnalysisRoots' request. | 245 * Implement the 'analysis.setAnalysisRoots' request. |
| 245 */ | 246 */ |
| 246 Response setAnalysisRoots(Request request) { | 247 Response setAnalysisRoots(Request request) { |
| 247 var params = new AnalysisSetAnalysisRootsParams.fromRequest(request); | 248 var params = new AnalysisSetAnalysisRootsParams.fromRequest(request); |
| 249 List<String> includedPathList = params.included; |
| 250 List<String> excludedPathList = params.excluded; |
| 251 // validate |
| 252 for (String path in includedPathList) { |
| 253 if (!server.isValidFilePath(path)) { |
| 254 return new Response.invalidFilePathFormat(request, path); |
| 255 } |
| 256 } |
| 257 for (String path in excludedPathList) { |
| 258 if (!server.isValidFilePath(path)) { |
| 259 return new Response.invalidFilePathFormat(request, path); |
| 260 } |
| 261 } |
| 248 // continue in server | 262 // continue in server |
| 249 server.setAnalysisRoots(request.id, params.included, params.excluded, | 263 server.setAnalysisRoots(request.id, includedPathList, excludedPathList, |
| 250 params.packageRoots == null ? {} : params.packageRoots); | 264 params.packageRoots ?? <String, String>{}); |
| 251 return new AnalysisSetAnalysisRootsResult().toResponse(request.id); | 265 return new AnalysisSetAnalysisRootsResult().toResponse(request.id); |
| 252 } | 266 } |
| 253 | 267 |
| 254 /** | 268 /** |
| 255 * Implement the 'analysis.setGeneralSubscriptions' request. | 269 * Implement the 'analysis.setGeneralSubscriptions' request. |
| 256 */ | 270 */ |
| 257 Response setGeneralSubscriptions(Request request) { | 271 Response setGeneralSubscriptions(Request request) { |
| 258 AnalysisSetGeneralSubscriptionsParams params = | 272 AnalysisSetGeneralSubscriptionsParams params = |
| 259 new AnalysisSetGeneralSubscriptionsParams.fromRequest(request); | 273 new AnalysisSetGeneralSubscriptionsParams.fromRequest(request); |
| 260 server.setGeneralAnalysisSubscriptions(params.subscriptions); | 274 server.setGeneralAnalysisSubscriptions(params.subscriptions); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 } | 354 } |
| 341 } | 355 } |
| 342 } | 356 } |
| 343 | 357 |
| 344 /** | 358 /** |
| 345 * An implementation of [AnalysisDomain] for [AnalysisServer]. | 359 * An implementation of [AnalysisDomain] for [AnalysisServer]. |
| 346 */ | 360 */ |
| 347 class AnalysisDomainImpl implements AnalysisDomain { | 361 class AnalysisDomainImpl implements AnalysisDomain { |
| 348 final AnalysisServer server; | 362 final AnalysisServer server; |
| 349 | 363 |
| 350 final Map<ResultDescriptor, | 364 final Map<ResultDescriptor, StreamController<engine.ComputedResult>> |
| 351 StreamController<engine.ComputedResult>> controllers = | 365 controllers = |
| 352 <ResultDescriptor, StreamController<engine.ComputedResult>>{}; | 366 <ResultDescriptor, StreamController<engine.ComputedResult>>{}; |
| 353 | 367 |
| 354 AnalysisDomainImpl(this.server) { | 368 AnalysisDomainImpl(this.server) { |
| 355 server.onContextsChanged.listen((ContextsChangedEvent event) { | 369 server.onContextsChanged.listen((ContextsChangedEvent event) { |
| 356 event.added.forEach(_subscribeForContext); | 370 event.added.forEach(_subscribeForContext); |
| 357 }); | 371 }); |
| 358 } | 372 } |
| 359 | 373 |
| 360 @override | 374 @override |
| 361 Stream<engine.ComputedResult> onResultComputed(ResultDescriptor descriptor) { | 375 Stream<engine.ComputedResult> onResultComputed(ResultDescriptor descriptor) { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 386 context.onResultComputed(descriptor).listen((result) { | 400 context.onResultComputed(descriptor).listen((result) { |
| 387 StreamController<engine.ComputedResult> controller = | 401 StreamController<engine.ComputedResult> controller = |
| 388 controllers[result.descriptor]; | 402 controllers[result.descriptor]; |
| 389 if (controller != null) { | 403 if (controller != null) { |
| 390 controller.add(result); | 404 controller.add(result); |
| 391 } | 405 } |
| 392 }); | 406 }); |
| 393 } | 407 } |
| 394 } | 408 } |
| 395 } | 409 } |
| OLD | NEW |