| 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/src/analysis_server.dart'; | 9 import 'package:analysis_server/src/analysis_server.dart'; |
| 10 import 'package:analysis_server/src/constants.dart'; | 10 import 'package:analysis_server/src/constants.dart'; |
| 11 import 'package:analysis_server/src/protocol.dart' hide Element; | 11 import 'package:analysis_server/src/protocol.dart' hide Element; |
| 12 import 'package:analysis_server/src/services/correction/assist.dart'; | 12 import 'package:analysis_server/src/services/correction/assist.dart'; |
| 13 import 'package:analysis_server/src/services/correction/fix.dart'; | 13 import 'package:analysis_server/src/services/correction/fix.dart'; |
| 14 import 'package:analysis_server/src/services/correction/status.dart'; | 14 import 'package:analysis_server/src/services/correction/status.dart'; |
| 15 import 'package:analysis_server/src/services/json.dart'; | 15 import 'package:analysis_server/src/services/json.dart'; |
| 16 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; | 16 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; |
| 17 import 'package:analysis_server/src/services/search/search_engine.dart'; | 17 import 'package:analysis_server/src/services/search/search_engine.dart'; |
| 18 import 'package:analyzer/src/generated/ast.dart'; | 18 import 'package:analyzer/src/generated/ast.dart'; |
| 19 import 'package:analyzer/src/generated/element.dart'; | 19 import 'package:analyzer/src/generated/element.dart'; |
| 20 import 'package:analyzer/src/generated/engine.dart' as engine; | 20 import 'package:analyzer/src/generated/engine.dart' as engine; |
| 21 import 'package:analyzer/src/generated/error.dart' as engine; | 21 import 'package:analyzer/src/generated/error.dart' as engine; |
| 22 import 'package:analyzer/src/generated/source.dart'; | 22 import 'package:analyzer/src/generated/source.dart'; |
| 23 import 'package:analyzer/src/generated/engine.dart'; |
| 23 | 24 |
| 24 | 25 |
| 25 /** | 26 /** |
| 26 * Instances of the class [EditDomainHandler] implement a [RequestHandler] | 27 * Instances of the class [EditDomainHandler] implement a [RequestHandler] |
| 27 * that handles requests in the edit domain. | 28 * that handles requests in the edit domain. |
| 28 */ | 29 */ |
| 29 class EditDomainHandler implements RequestHandler { | 30 class EditDomainHandler implements RequestHandler { |
| 30 /** | 31 /** |
| 31 * The analysis server that is using this handler to process requests. | 32 * The analysis server that is using this handler to process requests. |
| 32 */ | 33 */ |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 Refactoring refactoring; | 174 Refactoring refactoring; |
| 174 HasToJson feedback; | 175 HasToJson feedback; |
| 175 RefactoringStatus initStatus; | 176 RefactoringStatus initStatus; |
| 176 RefactoringStatus optionsStatus; | 177 RefactoringStatus optionsStatus; |
| 177 RefactoringStatus finalStatus; | 178 RefactoringStatus finalStatus; |
| 178 | 179 |
| 179 String requestId; | 180 String requestId; |
| 180 EditGetRefactoringResult result; | 181 EditGetRefactoringResult result; |
| 181 | 182 |
| 182 _RefactoringManager(this.server, this.searchEngine) { | 183 _RefactoringManager(this.server, this.searchEngine) { |
| 183 server.addAnalysisServerListener( | 184 server.onAnalysisStarted.listen(_reset); |
| 184 new _ResetRefactoringManagerAnalysisServerListener(this)); | |
| 185 _reset(); | 185 _reset(); |
| 186 } | 186 } |
| 187 | 187 |
| 188 bool get _hasFatalError { | 188 bool get _hasFatalError { |
| 189 return initStatus.hasFatalError || | 189 return initStatus.hasFatalError || |
| 190 optionsStatus.hasFatalError || | 190 optionsStatus.hasFatalError || |
| 191 finalStatus.hasFatalError; | 191 finalStatus.hasFatalError; |
| 192 } | 192 } |
| 193 | 193 |
| 194 /** | 194 /** |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 if (refactoring is RenameRefactoring) { | 367 if (refactoring is RenameRefactoring) { |
| 368 RenameRefactoring refactoring = this.refactoring; | 368 RenameRefactoring refactoring = this.refactoring; |
| 369 RenameFeedback feedback = this.feedback; | 369 RenameFeedback feedback = this.feedback; |
| 370 feedback.elementKindName = refactoring.elementKindName; | 370 feedback.elementKindName = refactoring.elementKindName; |
| 371 feedback.oldName = refactoring.oldName; | 371 feedback.oldName = refactoring.oldName; |
| 372 } | 372 } |
| 373 return initStatus; | 373 return initStatus; |
| 374 }); | 374 }); |
| 375 } | 375 } |
| 376 | 376 |
| 377 void _reset() { | 377 void _reset([AnalysisContext context]) { |
| 378 kind = null; | 378 kind = null; |
| 379 offset = null; | 379 offset = null; |
| 380 length = null; | 380 length = null; |
| 381 refactoring = null; | 381 refactoring = null; |
| 382 feedback = null; | 382 feedback = null; |
| 383 initStatus = new RefactoringStatus(); | 383 initStatus = new RefactoringStatus(); |
| 384 optionsStatus = new RefactoringStatus(); | 384 optionsStatus = new RefactoringStatus(); |
| 385 finalStatus = new RefactoringStatus(); | 385 finalStatus = new RefactoringStatus(); |
| 386 } | 386 } |
| 387 | 387 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 } | 435 } |
| 436 if (refactoring is RenameRefactoring) { | 436 if (refactoring is RenameRefactoring) { |
| 437 RenameRefactoring renameRefactoring = refactoring; | 437 RenameRefactoring renameRefactoring = refactoring; |
| 438 RenameOptions renameOptions = params.options; | 438 RenameOptions renameOptions = params.options; |
| 439 renameRefactoring.newName = renameOptions.newName; | 439 renameRefactoring.newName = renameOptions.newName; |
| 440 return renameRefactoring.checkNewName(); | 440 return renameRefactoring.checkNewName(); |
| 441 } | 441 } |
| 442 return new RefactoringStatus(); | 442 return new RefactoringStatus(); |
| 443 } | 443 } |
| 444 } | 444 } |
| 445 | |
| 446 | |
| 447 /** | |
| 448 * A [AnalysisServerListener] that resets [_RefactoringManager] when analysis | |
| 449 * is started in the [AnalysisServer]. | |
| 450 */ | |
| 451 class _ResetRefactoringManagerAnalysisServerListener implements | |
| 452 AnalysisServerListener { | |
| 453 final _RefactoringManager refactoringManager; | |
| 454 | |
| 455 _ResetRefactoringManagerAnalysisServerListener(this.refactoringManager); | |
| 456 | |
| 457 @override | |
| 458 void analysisComplete() { | |
| 459 } | |
| 460 | |
| 461 @override | |
| 462 void analysisStarted(engine.AnalysisContext context) { | |
| 463 refactoringManager._reset(); | |
| 464 } | |
| 465 } | |
| OLD | NEW |