| 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 services.src.refactoring.convert_getter_to_getter; | 5 library services.src.refactoring.convert_getter_to_getter; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol_server.dart' hide Element; | 9 import 'package:analysis_server/src/protocol_server.dart' hide Element; |
| 10 import 'package:analysis_server/src/services/correction/source_range.dart'; | |
| 11 import 'package:analysis_server/src/services/correction/status.dart'; | 10 import 'package:analysis_server/src/services/correction/status.dart'; |
| 12 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; | 11 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; |
| 13 import 'package:analysis_server/src/services/refactoring/refactoring_internal.da
rt'; | 12 import 'package:analysis_server/src/services/refactoring/refactoring_internal.da
rt'; |
| 14 import 'package:analysis_server/src/services/search/hierarchy.dart'; | 13 import 'package:analysis_server/src/services/search/hierarchy.dart'; |
| 15 import 'package:analysis_server/src/services/search/search_engine.dart'; | 14 import 'package:analysis_server/src/services/search/search_engine.dart'; |
| 16 import 'package:analyzer/dart/ast/ast.dart'; | 15 import 'package:analyzer/dart/ast/ast.dart'; |
| 17 import 'package:analyzer/dart/ast/token.dart'; | 16 import 'package:analyzer/dart/ast/token.dart'; |
| 18 import 'package:analyzer/dart/element/element.dart'; | 17 import 'package:analyzer/dart/element/element.dart'; |
| 19 import 'package:analyzer/src/dart/element/ast_provider.dart'; | 18 import 'package:analyzer/src/dart/element/ast_provider.dart'; |
| 20 import 'package:analyzer/src/generated/source.dart'; | 19 import 'package:analyzer/src/generated/source.dart'; |
| 20 import 'package:analyzer_plugin/utilities/range_factory.dart'; |
| 21 | 21 |
| 22 /** | 22 /** |
| 23 * [ConvertMethodToGetterRefactoring] implementation. | 23 * [ConvertMethodToGetterRefactoring] implementation. |
| 24 */ | 24 */ |
| 25 class ConvertGetterToMethodRefactoringImpl extends RefactoringImpl | 25 class ConvertGetterToMethodRefactoringImpl extends RefactoringImpl |
| 26 implements ConvertGetterToMethodRefactoring { | 26 implements ConvertGetterToMethodRefactoring { |
| 27 final SearchEngine searchEngine; | 27 final SearchEngine searchEngine; |
| 28 final AstProvider astProvider; | 28 final AstProvider astProvider; |
| 29 final PropertyAccessorElement element; | 29 final PropertyAccessorElement element; |
| 30 | 30 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 if (declaration is MethodDeclaration) { | 96 if (declaration is MethodDeclaration) { |
| 97 getKeyword = declaration.propertyKeyword; | 97 getKeyword = declaration.propertyKeyword; |
| 98 } else if (declaration is FunctionDeclaration) { | 98 } else if (declaration is FunctionDeclaration) { |
| 99 getKeyword = declaration.propertyKeyword; | 99 getKeyword = declaration.propertyKeyword; |
| 100 } else { | 100 } else { |
| 101 return; | 101 return; |
| 102 } | 102 } |
| 103 } | 103 } |
| 104 // remove "get " | 104 // remove "get " |
| 105 if (getKeyword != null) { | 105 if (getKeyword != null) { |
| 106 SourceRange getRange = rangeStartEnd(getKeyword, element.nameOffset); | 106 SourceRange getRange = |
| 107 range.offsetEndIndex(getKeyword.offset, element.nameOffset); |
| 107 SourceEdit edit = newSourceEdit_range(getRange, ''); | 108 SourceEdit edit = newSourceEdit_range(getRange, ''); |
| 108 doSourceChange_addElementEdit(change, element, edit); | 109 doSourceChange_addElementEdit(change, element, edit); |
| 109 } | 110 } |
| 110 // add parameters "()" | 111 // add parameters "()" |
| 111 { | 112 { |
| 112 SourceEdit edit = new SourceEdit(rangeElementName(element).end, 0, '()'); | 113 SourceEdit edit = new SourceEdit(range.elementName(element).end, 0, '()'); |
| 113 doSourceChange_addElementEdit(change, element, edit); | 114 doSourceChange_addElementEdit(change, element, edit); |
| 114 } | 115 } |
| 115 } | 116 } |
| 116 | 117 |
| 117 Future _updateElementReferences(Element element) async { | 118 Future _updateElementReferences(Element element) async { |
| 118 List<SearchMatch> matches = await searchEngine.searchReferences(element); | 119 List<SearchMatch> matches = await searchEngine.searchReferences(element); |
| 119 List<SourceReference> references = getSourceReferences(matches); | 120 List<SourceReference> references = getSourceReferences(matches); |
| 120 for (SourceReference reference in references) { | 121 for (SourceReference reference in references) { |
| 121 Element refElement = reference.element; | 122 Element refElement = reference.element; |
| 122 SourceRange refRange = reference.range; | 123 SourceRange refRange = reference.range; |
| 123 // insert "()" | 124 // insert "()" |
| 124 var edit = new SourceEdit(refRange.end, 0, "()"); | 125 var edit = new SourceEdit(refRange.end, 0, "()"); |
| 125 doSourceChange_addElementEdit(change, refElement, edit); | 126 doSourceChange_addElementEdit(change, refElement, edit); |
| 126 } | 127 } |
| 127 } | 128 } |
| 128 } | 129 } |
| OLD | NEW |