Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: pkg/analysis_server/lib/src/edit/edit_domain.dart

Issue 587783003: Replace AnalysisServerListener with Stream. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Merges and fixes for comments Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/domain_execution.dart ('k') | pkg/analysis_server/test/domain_execution_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698