| 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 |