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

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

Issue 605063002: Integrate CONVERT_GETTER_TO_METHOD refactoring into server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 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
« no previous file with comments | « no previous file | pkg/analysis_server/test/edit/refactoring_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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';
24 23
25 24
26 /** 25 /**
27 * Instances of the class [EditDomainHandler] implement a [RequestHandler] 26 * Instances of the class [EditDomainHandler] implement a [RequestHandler]
28 * that handles requests in the edit domain. 27 * that handles requests in the edit domain.
29 */ 28 */
30 class EditDomainHandler implements RequestHandler { 29 class EditDomainHandler implements RequestHandler {
31 /** 30 /**
32 * The analysis server that is using this handler to process requests. 31 * The analysis server that is using this handler to process requests.
33 */ 32 */
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 bool get _hasFatalError { 187 bool get _hasFatalError {
189 return initStatus.hasFatalError || 188 return initStatus.hasFatalError ||
190 optionsStatus.hasFatalError || 189 optionsStatus.hasFatalError ||
191 finalStatus.hasFatalError; 190 finalStatus.hasFatalError;
192 } 191 }
193 192
194 /** 193 /**
195 * Checks if [refactoring] requires options. 194 * Checks if [refactoring] requires options.
196 */ 195 */
197 bool get _requiresOptions { 196 bool get _requiresOptions {
198 if (refactoring is ConvertMethodToGetterRefactoring || 197 return refactoring is ExtractLocalRefactoring ||
199 refactoring is InlineLocalRefactoring) { 198 refactoring is ExtractMethodRefactoring ||
200 return false; 199 refactoring is InlineMethodRefactoring ||
201 } 200 refactoring is MoveFileRefactoring ||
202 return true; 201 refactoring is RenameRefactoring;
203 } 202 }
204 203
205 void getRefactoring(Request request) { 204 void getRefactoring(Request request) {
206 // prepare for processing the request 205 // prepare for processing the request
207 requestId = request.id; 206 requestId = request.id;
208 result = new EditGetRefactoringResult( 207 result = new EditGetRefactoringResult(
209 EMPTY_PROBLEM_LIST, 208 EMPTY_PROBLEM_LIST,
210 EMPTY_PROBLEM_LIST, 209 EMPTY_PROBLEM_LIST,
211 EMPTY_PROBLEM_LIST); 210 EMPTY_PROBLEM_LIST);
212 // process the request 211 // process the request
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 this.offset == offset && 258 this.offset == offset &&
260 this.length == length) { 259 this.length == length) {
261 return new Future.value(initStatus); 260 return new Future.value(initStatus);
262 } 261 }
263 _reset(); 262 _reset();
264 this.kind = kind; 263 this.kind = kind;
265 this.file = file; 264 this.file = file;
266 this.offset = offset; 265 this.offset = offset;
267 this.length = length; 266 this.length = length;
268 // create a new Refactoring instance 267 // create a new Refactoring instance
268 if (kind == RefactoringKind.CONVERT_GETTER_TO_METHOD) {
269 List<Element> elements = server.getElementsAtOffset(file, offset);
270 if (elements.isNotEmpty) {
271 Element element = elements[0];
272 if (element is ExecutableElement) {
273 refactoring =
274 new ConvertGetterToMethodRefactoring(searchEngine, element);
275 }
276 }
277 }
269 if (kind == RefactoringKind.CONVERT_METHOD_TO_GETTER) { 278 if (kind == RefactoringKind.CONVERT_METHOD_TO_GETTER) {
270 List<Element> elements = server.getElementsAtOffset(file, offset); 279 List<Element> elements = server.getElementsAtOffset(file, offset);
271 if (elements.isNotEmpty) { 280 if (elements.isNotEmpty) {
272 Element element = elements[0]; 281 Element element = elements[0];
273 if (element is ExecutableElement) { 282 if (element is ExecutableElement) {
274 refactoring = 283 refactoring =
275 new ConvertMethodToGetterRefactoring(searchEngine, element); 284 new ConvertMethodToGetterRefactoring(searchEngine, element);
276 } 285 }
277 } 286 }
278 } 287 }
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 if (refactoring is RenameRefactoring) { 380 if (refactoring is RenameRefactoring) {
372 RenameRefactoring refactoring = this.refactoring; 381 RenameRefactoring refactoring = this.refactoring;
373 RenameFeedback feedback = this.feedback; 382 RenameFeedback feedback = this.feedback;
374 feedback.elementKindName = refactoring.elementKindName; 383 feedback.elementKindName = refactoring.elementKindName;
375 feedback.oldName = refactoring.oldName; 384 feedback.oldName = refactoring.oldName;
376 } 385 }
377 return initStatus; 386 return initStatus;
378 }); 387 });
379 } 388 }
380 389
381 void _reset([AnalysisContext context]) { 390 void _reset([engine.AnalysisContext context]) {
382 kind = null; 391 kind = null;
383 offset = null; 392 offset = null;
384 length = null; 393 length = null;
385 refactoring = null; 394 refactoring = null;
386 feedback = null; 395 feedback = null;
387 initStatus = new RefactoringStatus(); 396 initStatus = new RefactoringStatus();
388 optionsStatus = new RefactoringStatus(); 397 optionsStatus = new RefactoringStatus();
389 finalStatus = new RefactoringStatus(); 398 finalStatus = new RefactoringStatus();
390 } 399 }
391 400
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 } 448 }
440 if (refactoring is RenameRefactoring) { 449 if (refactoring is RenameRefactoring) {
441 RenameRefactoring renameRefactoring = refactoring; 450 RenameRefactoring renameRefactoring = refactoring;
442 RenameOptions renameOptions = params.options; 451 RenameOptions renameOptions = params.options;
443 renameRefactoring.newName = renameOptions.newName; 452 renameRefactoring.newName = renameOptions.newName;
444 return renameRefactoring.checkNewName(); 453 return renameRefactoring.checkNewName();
445 } 454 }
446 return new RefactoringStatus(); 455 return new RefactoringStatus();
447 } 456 }
448 } 457 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analysis_server/test/edit/refactoring_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698