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 |