| Index: pkg/analysis_server/lib/src/edit/edit_domain.dart
|
| diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
|
| index 9c66d24b8a034ca5e253a30d2556024e1270c437..2d94108ee0c91cba8af18011257fd50858a69169 100644
|
| --- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
|
| +++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
|
| @@ -14,6 +14,7 @@ import 'package:analysis_server/src/analysis_server.dart';
|
| import 'package:analysis_server/src/collections.dart';
|
| import 'package:analysis_server/src/constants.dart';
|
| import 'package:analysis_server/src/protocol_server.dart' hide Element;
|
| +import 'package:analysis_server/src/services/completion/statement/statement_completion.dart';
|
| import 'package:analysis_server/src/services/correction/assist.dart';
|
| import 'package:analysis_server/src/services/correction/assist_internal.dart';
|
| import 'package:analysis_server/src/services/correction/fix.dart';
|
| @@ -249,6 +250,38 @@ class EditDomainHandler implements RequestHandler {
|
| new EditGetFixesResult(errorFixesList).toResponse(request.id));
|
| }
|
|
|
| + Future getStatementCompletion(Request request) async {
|
| + var params = new EditGetStatementCompletionParams.fromRequest(request);
|
| + SourceChange change;
|
| +
|
| + AnalysisResult result = await server.getAnalysisResult(params.file);
|
| + if (result != null) {
|
| + CompilationUnit unit = result.unit;
|
| + CompilationUnitElement unitElement =
|
| + resolutionMap.elementDeclaredByCompilationUnit(unit);
|
| + if (unitElement.context != null) {
|
| + StatementCompletionContext context = new StatementCompletionContext(
|
| + params.file,
|
| + result.lineInfo,
|
| + params.offset,
|
| + unit,
|
| + unitElement,
|
| + result.errors);
|
| + StatementCompletionProcessor processor =
|
| + new StatementCompletionProcessor(context);
|
| + StatementCompletion completion = await processor.compute();
|
| + change = completion.change;
|
| + }
|
| + }
|
| + if (change == null) {
|
| + change = new SourceChange("", edits: []);
|
| + }
|
| +
|
| + Response response = new EditGetStatementCompletionResult(change, false)
|
| + .toResponse(request.id);
|
| + server.sendResponse(response);
|
| + }
|
| +
|
| @override
|
| Response handleRequest(Request request) {
|
| try {
|
| @@ -271,6 +304,9 @@ class EditDomainHandler implements RequestHandler {
|
| } else if (requestName == EDIT_SORT_MEMBERS) {
|
| sortMembers(request);
|
| return Response.DELAYED_RESPONSE;
|
| + } else if (requestName == EDIT_GET_STATEMENT_COMPLETION) {
|
| + getStatementCompletion(request);
|
| + return Response.DELAYED_RESPONSE;
|
| }
|
| } on RequestFailure catch (exception) {
|
| return exception.response;
|
|
|