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

Unified Diff: pkg/analysis_server/lib/src/edit/edit_domain.dart

Issue 534123002: Integrate EXTRACT_METHOD refactoring into the server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/services/refactoring/extract_method.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/edit/edit_domain.dart
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index 901cffd03b72c4aef83807628eb3d6c56cf37cdd..470cdd6d4a9bc65ee4e576042d2664617d542a85 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -111,7 +111,8 @@ class EditDomainHandler implements RequestHandler {
if (fixes.isNotEmpty) {
AnalysisError serverError =
new AnalysisError.fromEngine(lineInfo, error);
- AnalysisErrorFixes errorFixes = new AnalysisErrorFixes(serverError);
+ AnalysisErrorFixes errorFixes =
+ new AnalysisErrorFixes(serverError);
errorFixesList.add(errorFixes);
fixes.forEach((fix) {
errorFixes.addFix(fix);
@@ -247,6 +248,15 @@ class _RefactoringManager {
feedback = new ExtractLocalVariableFeedback([], [], []);
}
}
+ if (kind == RefactoringKind.EXTRACT_METHOD) {
+ List<CompilationUnit> units = server.getResolvedCompilationUnits(file);
+ if (units.isNotEmpty) {
+ refactoring =
+ new ExtractMethodRefactoring(searchEngine, units[0], offset, length);
+ feedback =
+ new ExtractMethodFeedback(offset, length, null, [], false, [], [], []);
+ }
+ }
if (kind == RefactoringKind.RENAME) {
List<AstNode> nodes = server.getNodesAtOffset(file, offset);
List<Element> elements = server.getElementsAtOffset(file, offset);
@@ -272,6 +282,16 @@ class _RefactoringManager {
feedback.offsets = refactoring.offsets;
feedback.lengths = refactoring.lengths;
}
+ if (refactoring is ExtractMethodRefactoring) {
+ ExtractMethodRefactoring refactoring = this.refactoring;
+ ExtractMethodFeedback feedback = this.feedback;
+ feedback.canCreateGetter = refactoring.canCreateGetter;
+ feedback.returnType = refactoring.returnType;
+ feedback.names = refactoring.names;
+ feedback.parameters = refactoring.parameters;
+ feedback.offsets = refactoring.offsets;
+ feedback.lengths = refactoring.lengths;
+ }
return initStatus;
});
}
@@ -302,7 +322,7 @@ class _RefactoringManager {
}
RefactoringStatus _setOptions(EditGetRefactoringParams params,
- Request request) {
+ Request request) {
if (refactoring is ExtractLocalRefactoring) {
ExtractLocalRefactoring extractRefactoring = refactoring;
ExtractLocalVariableOptions extractOptions =
@@ -311,6 +331,19 @@ class _RefactoringManager {
extractRefactoring.extractAll = extractOptions.extractAll;
return extractRefactoring.checkName();
}
+ if (refactoring is ExtractMethodRefactoring) {
+ ExtractMethodRefactoring extractRefactoring = this.refactoring;
+ ExtractMethodOptions extractOptions =
+ new ExtractMethodOptions.fromRefactoringParams(params, request);
+ extractRefactoring.createGetter = extractOptions.createGetter;
+ extractRefactoring.extractAll = extractOptions.extractAll;
+ extractRefactoring.name = extractOptions.name;
+ if (extractOptions.parameters != null) {
+ extractRefactoring.parameters = extractOptions.parameters;
+ }
+ extractRefactoring.returnType = extractOptions.returnType;
+ return extractRefactoring.checkName();
+ }
if (refactoring is RenameRefactoring) {
RenameRefactoring renameRefactoring = refactoring;
RenameOptions renameOptions =
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/services/refactoring/extract_method.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698