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 edit.domain; | 5 library edit.domain; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; |
10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; | 10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; |
11 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; | 11 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; |
12 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; | 12 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; |
13 import 'package:analysis_server/src/analysis_server.dart'; | 13 import 'package:analysis_server/src/analysis_server.dart'; |
14 import 'package:analysis_server/src/collections.dart'; | 14 import 'package:analysis_server/src/collections.dart'; |
15 import 'package:analysis_server/src/constants.dart'; | 15 import 'package:analysis_server/src/constants.dart'; |
16 import 'package:analysis_server/src/protocol_server.dart' hide Element; | 16 import 'package:analysis_server/src/protocol_server.dart' hide Element; |
| 17 import 'package:analysis_server/src/services/completion/statement/statement_comp
letion.dart'; |
17 import 'package:analysis_server/src/services/correction/assist.dart'; | 18 import 'package:analysis_server/src/services/correction/assist.dart'; |
18 import 'package:analysis_server/src/services/correction/assist_internal.dart'; | 19 import 'package:analysis_server/src/services/correction/assist_internal.dart'; |
19 import 'package:analysis_server/src/services/correction/fix.dart'; | 20 import 'package:analysis_server/src/services/correction/fix.dart'; |
20 import 'package:analysis_server/src/services/correction/fix_internal.dart'; | 21 import 'package:analysis_server/src/services/correction/fix_internal.dart'; |
21 import 'package:analysis_server/src/services/correction/organize_directives.dart
'; | 22 import 'package:analysis_server/src/services/correction/organize_directives.dart
'; |
22 import 'package:analysis_server/src/services/correction/sort_members.dart'; | 23 import 'package:analysis_server/src/services/correction/sort_members.dart'; |
23 import 'package:analysis_server/src/services/correction/status.dart'; | 24 import 'package:analysis_server/src/services/correction/status.dart'; |
24 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; | 25 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; |
25 import 'package:analysis_server/src/services/search/search_engine.dart'; | 26 import 'package:analysis_server/src/services/search/search_engine.dart'; |
26 import 'package:analyzer/dart/ast/ast.dart'; | 27 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 } | 243 } |
243 } | 244 } |
244 } | 245 } |
245 } | 246 } |
246 | 247 |
247 // Send the response. | 248 // Send the response. |
248 server.sendResponse( | 249 server.sendResponse( |
249 new EditGetFixesResult(errorFixesList).toResponse(request.id)); | 250 new EditGetFixesResult(errorFixesList).toResponse(request.id)); |
250 } | 251 } |
251 | 252 |
| 253 Future getStatementCompletion(Request request) async { |
| 254 var params = new EditGetStatementCompletionParams.fromRequest(request); |
| 255 SourceChange change; |
| 256 |
| 257 AnalysisResult result = await server.getAnalysisResult(params.file); |
| 258 if (result != null) { |
| 259 CompilationUnit unit = result.unit; |
| 260 CompilationUnitElement unitElement = |
| 261 resolutionMap.elementDeclaredByCompilationUnit(unit); |
| 262 if (unitElement.context != null) { |
| 263 StatementCompletionContext context = new StatementCompletionContext( |
| 264 params.file, |
| 265 result.lineInfo, |
| 266 params.offset, |
| 267 unit, |
| 268 unitElement, |
| 269 result.errors); |
| 270 StatementCompletionProcessor processor = |
| 271 new StatementCompletionProcessor(context); |
| 272 StatementCompletion completion = await processor.compute(); |
| 273 change = completion.change; |
| 274 } |
| 275 } |
| 276 if (change == null) { |
| 277 change = new SourceChange("", edits: []); |
| 278 } |
| 279 |
| 280 Response response = new EditGetStatementCompletionResult(change, false) |
| 281 .toResponse(request.id); |
| 282 server.sendResponse(response); |
| 283 } |
| 284 |
252 @override | 285 @override |
253 Response handleRequest(Request request) { | 286 Response handleRequest(Request request) { |
254 try { | 287 try { |
255 String requestName = request.method; | 288 String requestName = request.method; |
256 if (requestName == EDIT_FORMAT) { | 289 if (requestName == EDIT_FORMAT) { |
257 return format(request); | 290 return format(request); |
258 } else if (requestName == EDIT_GET_ASSISTS) { | 291 } else if (requestName == EDIT_GET_ASSISTS) { |
259 getAssists(request); | 292 getAssists(request); |
260 return Response.DELAYED_RESPONSE; | 293 return Response.DELAYED_RESPONSE; |
261 } else if (requestName == EDIT_GET_AVAILABLE_REFACTORINGS) { | 294 } else if (requestName == EDIT_GET_AVAILABLE_REFACTORINGS) { |
262 return _getAvailableRefactorings(request); | 295 return _getAvailableRefactorings(request); |
263 } else if (requestName == EDIT_GET_FIXES) { | 296 } else if (requestName == EDIT_GET_FIXES) { |
264 getFixes(request); | 297 getFixes(request); |
265 return Response.DELAYED_RESPONSE; | 298 return Response.DELAYED_RESPONSE; |
266 } else if (requestName == EDIT_GET_REFACTORING) { | 299 } else if (requestName == EDIT_GET_REFACTORING) { |
267 return _getRefactoring(request); | 300 return _getRefactoring(request); |
268 } else if (requestName == EDIT_ORGANIZE_DIRECTIVES) { | 301 } else if (requestName == EDIT_ORGANIZE_DIRECTIVES) { |
269 organizeDirectives(request); | 302 organizeDirectives(request); |
270 return Response.DELAYED_RESPONSE; | 303 return Response.DELAYED_RESPONSE; |
271 } else if (requestName == EDIT_SORT_MEMBERS) { | 304 } else if (requestName == EDIT_SORT_MEMBERS) { |
272 sortMembers(request); | 305 sortMembers(request); |
273 return Response.DELAYED_RESPONSE; | 306 return Response.DELAYED_RESPONSE; |
| 307 } else if (requestName == EDIT_GET_STATEMENT_COMPLETION) { |
| 308 getStatementCompletion(request); |
| 309 return Response.DELAYED_RESPONSE; |
274 } | 310 } |
275 } on RequestFailure catch (exception) { | 311 } on RequestFailure catch (exception) { |
276 return exception.response; | 312 return exception.response; |
277 } | 313 } |
278 return null; | 314 return null; |
279 } | 315 } |
280 | 316 |
281 Future<Null> organizeDirectives(Request request) async { | 317 Future<Null> organizeDirectives(Request request) async { |
282 var params = new EditOrganizeDirectivesParams.fromRequest(request); | 318 var params = new EditOrganizeDirectivesParams.fromRequest(request); |
283 // prepare file | 319 // prepare file |
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
971 } | 1007 } |
972 return new RefactoringStatus(); | 1008 return new RefactoringStatus(); |
973 } | 1009 } |
974 } | 1010 } |
975 | 1011 |
976 /** | 1012 /** |
977 * [_RefactoringManager] throws instances of this class internally to stop | 1013 * [_RefactoringManager] throws instances of this class internally to stop |
978 * processing in a manager that was reset. | 1014 * processing in a manager that was reset. |
979 */ | 1015 */ |
980 class _ResetError {} | 1016 class _ResetError {} |
OLD | NEW |