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

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

Issue 875163002: Make AnalysisServer.onAnalysisComplete a Future and wait for it before refactoring. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Use Completer instead of busy loop Created 5 years, 10 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/collections.dart'; 10 import 'package:analysis_server/src/collections.dart';
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 }); 350 });
351 }, onError: (exception, stackTrace) { 351 }, onError: (exception, stackTrace) {
352 server.instrumentationService.logException(exception, stackTrace); 352 server.instrumentationService.logException(exception, stackTrace);
353 server.sendResponse( 353 server.sendResponse(
354 new Response.serverError(request, exception, stackTrace)); 354 new Response.serverError(request, exception, stackTrace));
355 _reset(); 355 _reset();
356 }); 356 });
357 } 357 }
358 358
359 /** 359 /**
360 * Awaits for analysis to complete and then calls [_init2] to actually
361 * initialize the resfactoring.
362 */
363 Future<RefactoringStatus> _init(RefactoringKind kind, String file, int offset,
364 int length) {
365 return server.onAnalysisComplete.then((_) {
Paul Berry 2015/01/26 22:32:11 As we discussed in person, it would be nice in a f
366 return _init2(kind, file, offset, length);
367 });
368 }
369
370 /**
360 * Initializes this context to perform a refactoring with the specified 371 * Initializes this context to perform a refactoring with the specified
361 * parameters. The existing [Refactoring] is reused or created as needed. 372 * parameters. The existing [Refactoring] is reused or created as needed.
362 */ 373 */
363 Future<RefactoringStatus> _init(RefactoringKind kind, String file, int offset, 374 Future<RefactoringStatus> _init2(RefactoringKind kind, String file,
364 int length) { 375 int offset, int length) {
365 // check if we can continue with the existing Refactoring instance 376 // check if we can continue with the existing Refactoring instance
366 if (this.kind == kind && 377 if (this.kind == kind &&
367 this.file == file && 378 this.file == file &&
368 this.offset == offset && 379 this.offset == offset &&
369 this.length == length) { 380 this.length == length) {
370 return new Future.value(initStatus); 381 return new Future.value(initStatus);
371 } 382 }
372 _reset(); 383 _reset();
373 this.kind = kind; 384 this.kind = kind;
374 this.file = file; 385 this.file = file;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 } 583 }
573 if (refactoring is RenameRefactoring) { 584 if (refactoring is RenameRefactoring) {
574 RenameRefactoring renameRefactoring = refactoring; 585 RenameRefactoring renameRefactoring = refactoring;
575 RenameOptions renameOptions = params.options; 586 RenameOptions renameOptions = params.options;
576 renameRefactoring.newName = renameOptions.newName; 587 renameRefactoring.newName = renameOptions.newName;
577 return renameRefactoring.checkNewName(); 588 return renameRefactoring.checkNewName();
578 } 589 }
579 return new RefactoringStatus(); 590 return new RefactoringStatus();
580 } 591 }
581 } 592 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | pkg/analysis_server/test/analysis_abstract.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698