Chromium Code Reviews| 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 | 6 |
| 7 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 7 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; |
| 8 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; | 8 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; |
| 9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; | 9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; |
| 10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; | 10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; |
| 11 import 'package:analysis_server/src/analysis_server.dart'; | 11 import 'package:analysis_server/src/analysis_server.dart'; |
| 12 import 'package:analysis_server/src/collections.dart'; | 12 import 'package:analysis_server/src/collections.dart'; |
| 13 import 'package:analysis_server/src/constants.dart'; | 13 import 'package:analysis_server/src/constants.dart'; |
| 14 import 'package:analysis_server/src/domain_abstract.dart'; | 14 import 'package:analysis_server/src/domain_abstract.dart'; |
| 15 import 'package:analysis_server/src/plugin/plugin_manager.dart'; | 15 import 'package:analysis_server/src/plugin/plugin_manager.dart'; |
| 16 import 'package:analysis_server/src/plugin/result_converter.dart'; | 16 import 'package:analysis_server/src/plugin/result_converter.dart'; |
| 17 import 'package:analysis_server/src/protocol_server.dart' hide Element; | 17 import 'package:analysis_server/src/protocol_server.dart' hide Element; |
| 18 import 'package:analysis_server/src/services/completion/postfix/postfix_completi on.dart'; | |
| 18 import 'package:analysis_server/src/services/completion/statement/statement_comp letion.dart'; | 19 import 'package:analysis_server/src/services/completion/statement/statement_comp letion.dart'; |
| 19 import 'package:analysis_server/src/services/correction/assist_internal.dart'; | 20 import 'package:analysis_server/src/services/correction/assist_internal.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'; |
| 27 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; | 28 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 260 errorFixesList | 261 errorFixesList |
| 261 .addAll(result.fixes.map(converter.convertAnalysisErrorFixes)); | 262 .addAll(result.fixes.map(converter.convertAnalysisErrorFixes)); |
| 262 } | 263 } |
| 263 // | 264 // |
| 264 // Send the response. | 265 // Send the response. |
| 265 // | 266 // |
| 266 server.sendResponse( | 267 server.sendResponse( |
| 267 new EditGetFixesResult(errorFixesList).toResponse(request.id)); | 268 new EditGetFixesResult(errorFixesList).toResponse(request.id)); |
| 268 } | 269 } |
| 269 | 270 |
| 271 Future getPostfixCompletion(Request request) async { | |
| 272 var params = new EditGetPostfixCompletionParams.fromRequest(request); | |
| 273 SourceChange change; | |
| 274 | |
| 275 AnalysisResult result = await server.getAnalysisResult(params.file); | |
| 276 if (result != null) { | |
| 277 CompilationUnit unit = result.unit; | |
| 278 CompilationUnitElement unitElement = | |
| 279 resolutionMap.elementDeclaredByCompilationUnit(unit); | |
| 280 if (unitElement.context != null) { | |
| 281 PostfixCompletionContext context = new PostfixCompletionContext( | |
| 282 params.file, | |
| 283 result.lineInfo, | |
| 284 params.offset, | |
| 285 params.key, | |
| 286 result.driver, | |
| 287 unit, | |
| 288 unitElement, | |
| 289 result.errors); | |
| 290 PostfixCompletionProcessor processor = | |
| 291 new PostfixCompletionProcessor(context); | |
| 292 PostfixCompletion completion = await processor.compute(); | |
| 293 change = completion.change; | |
| 294 } | |
| 295 } | |
| 296 if (change == null) { | |
| 297 change = new SourceChange("", edits: []); | |
|
Brian Wilkerson
2017/06/22 14:54:40
If we are unable to generate a response we should
messick
2017/06/22 16:12:32
Acknowledged.
messick
2017/06/22 23:36:50
I'm not sure what you're asking for here. All the
| |
| 298 } | |
| 299 | |
| 300 Response response = | |
| 301 new EditGetPostfixCompletionResult(change).toResponse(request.id); | |
| 302 server.sendResponse(response); | |
| 303 } | |
| 304 | |
| 270 Future getStatementCompletion(Request request) async { | 305 Future getStatementCompletion(Request request) async { |
| 271 var params = new EditGetStatementCompletionParams.fromRequest(request); | 306 var params = new EditGetStatementCompletionParams.fromRequest(request); |
| 272 SourceChange change; | 307 SourceChange change; |
| 273 | 308 |
| 274 AnalysisResult result = await server.getAnalysisResult(params.file); | 309 AnalysisResult result = await server.getAnalysisResult(params.file); |
| 275 if (result != null) { | 310 if (result != null) { |
| 276 CompilationUnit unit = result.unit; | 311 CompilationUnit unit = result.unit; |
| 277 CompilationUnitElement unitElement = | 312 CompilationUnitElement unitElement = |
| 278 resolutionMap.elementDeclaredByCompilationUnit(unit); | 313 resolutionMap.elementDeclaredByCompilationUnit(unit); |
| 279 if (unitElement.context != null) { | 314 if (unitElement.context != null) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 return _getRefactoring(request); | 352 return _getRefactoring(request); |
| 318 } else if (requestName == EDIT_ORGANIZE_DIRECTIVES) { | 353 } else if (requestName == EDIT_ORGANIZE_DIRECTIVES) { |
| 319 organizeDirectives(request); | 354 organizeDirectives(request); |
| 320 return Response.DELAYED_RESPONSE; | 355 return Response.DELAYED_RESPONSE; |
| 321 } else if (requestName == EDIT_SORT_MEMBERS) { | 356 } else if (requestName == EDIT_SORT_MEMBERS) { |
| 322 sortMembers(request); | 357 sortMembers(request); |
| 323 return Response.DELAYED_RESPONSE; | 358 return Response.DELAYED_RESPONSE; |
| 324 } else if (requestName == EDIT_GET_STATEMENT_COMPLETION) { | 359 } else if (requestName == EDIT_GET_STATEMENT_COMPLETION) { |
| 325 getStatementCompletion(request); | 360 getStatementCompletion(request); |
| 326 return Response.DELAYED_RESPONSE; | 361 return Response.DELAYED_RESPONSE; |
| 362 } else if (requestName == EDIT_IS_POSTFIX_COMPLETION_APPLICABLE) { | |
| 363 isPostfixCompletionApplicable(request); | |
| 364 return Response.DELAYED_RESPONSE; | |
| 365 } else if (requestName == EDIT_GET_POSTFIX_COMPLETION) { | |
| 366 getPostfixCompletion(request); | |
| 367 return Response.DELAYED_RESPONSE; | |
| 368 } else if (requestName == EDIT_LIST_POSTFIX_COMPLETION_TEMPLATES) { | |
| 369 listPostfixCompletionTemplates(request); | |
| 370 return Response.DELAYED_RESPONSE; | |
| 327 } | 371 } |
| 328 } on RequestFailure catch (exception) { | 372 } on RequestFailure catch (exception) { |
| 329 return exception.response; | 373 return exception.response; |
| 330 } | 374 } |
| 331 return null; | 375 return null; |
| 332 } | 376 } |
| 333 | 377 |
| 378 Future isPostfixCompletionApplicable(Request request) async { | |
| 379 var params = new EditGetPostfixCompletionParams.fromRequest(request); | |
| 380 bool value; | |
|
Brian Wilkerson
2017/06/22 14:54:40
Shouldn't this be initialized to a non-null value?
messick
2017/06/22 16:12:32
Done.
| |
| 381 | |
| 382 AnalysisResult result = await server.getAnalysisResult(params.file); | |
| 383 if (result != null) { | |
| 384 CompilationUnit unit = result.unit; | |
| 385 CompilationUnitElement unitElement = | |
| 386 resolutionMap.elementDeclaredByCompilationUnit(unit); | |
| 387 if (unitElement.context != null) { | |
| 388 PostfixCompletionContext context = new PostfixCompletionContext( | |
| 389 params.file, | |
| 390 result.lineInfo, | |
| 391 params.offset, | |
| 392 params.key, | |
| 393 result.driver, | |
| 394 unit, | |
| 395 unitElement, | |
| 396 result.errors); | |
| 397 PostfixCompletionProcessor processor = | |
| 398 new PostfixCompletionProcessor(context); | |
| 399 value = await processor.isApplicable(); | |
| 400 } | |
| 401 } | |
| 402 | |
| 403 Response response = new EditIsPostfixCompletionApplicableResult(value) | |
| 404 .toResponse(request.id); | |
| 405 server.sendResponse(response); | |
| 406 } | |
| 407 | |
| 408 Future listPostfixCompletionTemplates(Request request) async { | |
| 409 var templates = DartPostfixCompletion.ALL_TEMPLATES | |
| 410 .map((pfc) => [pfc.name, pfc.key, pfc.example]) | |
| 411 .toList(); | |
| 412 | |
| 413 Response response = new EditListPostfixCompletionTemplatesResult(templates) | |
| 414 .toResponse(request.id); | |
| 415 server.sendResponse(response); | |
| 416 } | |
| 417 | |
| 334 Future<Null> organizeDirectives(Request request) async { | 418 Future<Null> organizeDirectives(Request request) async { |
| 335 var params = new EditOrganizeDirectivesParams.fromRequest(request); | 419 var params = new EditOrganizeDirectivesParams.fromRequest(request); |
| 336 // prepare file | 420 // prepare file |
| 337 String file = params.file; | 421 String file = params.file; |
| 338 if (!engine.AnalysisEngine.isDartFileName(file)) { | 422 if (!engine.AnalysisEngine.isDartFileName(file)) { |
| 339 server.sendResponse(new Response.fileNotAnalyzed(request, file)); | 423 server.sendResponse(new Response.fileNotAnalyzed(request, file)); |
| 340 return; | 424 return; |
| 341 } | 425 } |
| 342 // Prepare the file information. | 426 // Prepare the file information. |
| 343 AnalysisResult result = await server.getAnalysisResult(file); | 427 AnalysisResult result = await server.getAnalysisResult(file); |
| (...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 937 } | 1021 } |
| 938 return new RefactoringStatus(); | 1022 return new RefactoringStatus(); |
| 939 } | 1023 } |
| 940 } | 1024 } |
| 941 | 1025 |
| 942 /** | 1026 /** |
| 943 * [_RefactoringManager] throws instances of this class internally to stop | 1027 * [_RefactoringManager] throws instances of this class internally to stop |
| 944 * processing in a manager that was reset. | 1028 * processing in a manager that was reset. |
| 945 */ | 1029 */ |
| 946 class _ResetError {} | 1030 class _ResetError {} |
| OLD | NEW |