| 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 1c002522183c435c296dcca5a79e8e5c6861cffe..9621afbeda6c69e910725b8e368f8ba20f951213 100644
|
| --- a/pkg/analysis_server/lib/src/domain_analysis.dart
|
| +++ b/pkg/analysis_server/lib/src/domain_analysis.dart
|
| @@ -23,6 +23,7 @@ import 'package:analyzer/dart/ast/ast.dart';
|
| import 'package:analyzer/dart/element/element.dart';
|
| import 'package:analyzer/exception/exception.dart';
|
| import 'package:analyzer/file_system/file_system.dart';
|
| +import 'package:analyzer/src/dart/analysis/driver.dart';
|
| import 'package:analyzer/src/generated/engine.dart' as engine;
|
| import 'package:analyzer/src/generated/source.dart';
|
| import 'package:analyzer/task/model.dart' show ResultDescriptor;
|
| @@ -85,13 +86,20 @@ class AnalysisDomainHandler implements RequestHandler {
|
| /**
|
| * Implement the `analysis.getHover` request.
|
| */
|
| - Response getHover(Request request) {
|
| - // prepare parameters
|
| + Future<Null> getHover(Request request) async {
|
| var params = new AnalysisGetHoverParams.fromRequest(request);
|
| - // prepare hovers
|
| +
|
| + // Prepare the resolved units.
|
| + List<CompilationUnit> units;
|
| + if (server.options.enableNewAnalysisDriver) {
|
| + AnalysisResult result = await server.getAnalysisResult(params.file);
|
| + units = result != null ? [result.unit] : null;
|
| + } else {
|
| + units = server.getResolvedCompilationUnits(params.file);
|
| + }
|
| +
|
| + // Prepare the hovers.
|
| List<HoverInformation> hovers = <HoverInformation>[];
|
| - List<CompilationUnit> units =
|
| - server.getResolvedCompilationUnits(params.file);
|
| for (CompilationUnit unit in units) {
|
| HoverInformation hoverInformation =
|
| new DartUnitHoverComputer(unit, params.offset).compute();
|
| @@ -99,8 +107,10 @@ class AnalysisDomainHandler implements RequestHandler {
|
| hovers.add(hoverInformation);
|
| }
|
| }
|
| - // send response
|
| - return new AnalysisGetHoverResult(hovers).toResponse(request.id);
|
| +
|
| + // Send the response.
|
| + server.sendResponse(
|
| + new AnalysisGetHoverResult(hovers).toResponse(request.id));
|
| }
|
|
|
| /// Implement the `analysis.getLibraryDependencies` request.
|
| @@ -187,7 +197,8 @@ class AnalysisDomainHandler implements RequestHandler {
|
| if (requestName == ANALYSIS_GET_ERRORS) {
|
| return getErrors(request);
|
| } else if (requestName == ANALYSIS_GET_HOVER) {
|
| - return getHover(request);
|
| + getHover(request);
|
| + return Response.DELAYED_RESPONSE;
|
| } else if (requestName == ANALYSIS_GET_LIBRARY_DEPENDENCIES) {
|
| return getLibraryDependencies(request);
|
| } else if (requestName == ANALYSIS_GET_NAVIGATION) {
|
|
|