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

Unified Diff: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/cleanup/style/Style_useBlocks_CleanUp.java

Issue 10962014: Fixes for raw string and block clean ups (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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
Index: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/cleanup/style/Style_useBlocks_CleanUp.java
diff --git a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/cleanup/style/Style_useBlocks_CleanUp.java b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/cleanup/style/Style_useBlocks_CleanUp.java
index 48dc0a55c1de4af52c6bb6cf927b217c0237bdba..9d9590271d287e8cda45b99734b32b9e419deed5 100644
--- a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/cleanup/style/Style_useBlocks_CleanUp.java
+++ b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/cleanup/style/Style_useBlocks_CleanUp.java
@@ -16,7 +16,6 @@ package com.google.dart.tools.ui.internal.cleanup.style;
import static com.google.dart.tools.core.dom.PropertyDescriptorHelper.DART_IF_STATEMENT_ELSE;
import static com.google.dart.tools.core.dom.PropertyDescriptorHelper.getLocationInParent;
-import com.google.common.base.Objects;
import com.google.dart.compiler.ast.ASTVisitor;
import com.google.dart.compiler.ast.DartBlock;
import com.google.dart.compiler.ast.DartForInStatement;
@@ -25,162 +24,88 @@ import com.google.dart.compiler.ast.DartIfStatement;
import com.google.dart.compiler.ast.DartNode;
import com.google.dart.compiler.ast.DartStatement;
import com.google.dart.compiler.ast.DartWhileStatement;
-import com.google.dart.tools.core.model.SourceRange;
import com.google.dart.tools.core.utilities.general.SourceRangeFactory;
import com.google.dart.tools.ui.internal.cleanup.migration.AbstractMigrateCleanUp;
-import java.util.List;
-
/**
* Use/not-use block is control statements.
*
* @coverage dart.editor.ui.cleanup
*/
public class Style_useBlocks_CleanUp extends AbstractMigrateCleanUp {
- public static final String ALWAYS = "ALWAYS";
- public static final String WHEN_NECESSARY = "WHEN_NECESSARY";
-
- private String flag;
-
- public void setFlag(String flag) {
- this.flag = flag;
- }
@Override
protected void createFix() throws Exception {
final String eol = utils.getEndOfLine();
- if (Objects.equal(flag, ALWAYS)) {
- unitNode.accept(new ASTVisitor<Void>() {
- @Override
- public Void visitForInStatement(DartForInStatement node) {
- DartStatement body = node.getBody();
- ensureBlock(node, node.getCloseParenOffset() + 1, body);
- return super.visitForInStatement(node);
- }
- @Override
- public Void visitForStatement(DartForStatement node) {
- DartStatement body = node.getBody();
- ensureBlock(node, node.getCloseParenOffset() + 1, body);
- return super.visitForStatement(node);
+ unitNode.accept(new ASTVisitor<Void>() {
+ @Override
+ public Void visitForInStatement(DartForInStatement node) {
+ if (!utils.getText(node).contains(eol)) {
+ return null;
}
+ DartStatement body = node.getBody();
+ ensureBlock(node, node.getCloseParenOffset() + 1, body);
+ return super.visitForInStatement(node);
+ }
- @Override
- public Void visitIfStatement(DartIfStatement node) {
- DartStatement thenStatement = node.getThenStatement();
- DartStatement elseStatement = node.getElseStatement();
- // single line "if"
- if (!utils.getText(node).contains(eol)) {
- return null;
- }
- // ensure block
- if (!(thenStatement instanceof DartBlock)) {
- String prefix = getNodePrefix(node);
- addReplaceEdit(
- SourceRangeFactory.forStartLength(node.getCloseParenOffset() + 1, 0),
- " {");
- if (elseStatement != null) {
- int elseOffset = node.getElseTokenOffset();
- addReplaceEdit(SourceRangeFactory.forStartLength(elseOffset, 0), "} ");
- } else {
- addReplaceEdit(SourceRangeFactory.forEndLength(thenStatement, 0), eol + prefix + "}");
- }
- }
- if (elseStatement != null) {
- ensureBlock(node, node.getElseTokenOffset() + "else".length(), elseStatement);
- }
- return super.visitIfStatement(node);
+ @Override
+ public Void visitForStatement(DartForStatement node) {
+ if (!utils.getText(node).contains(eol)) {
+ return null;
}
+ DartStatement body = node.getBody();
+ ensureBlock(node, node.getCloseParenOffset() + 1, body);
+ return super.visitForStatement(node);
+ }
- @Override
- public Void visitWhileStatement(DartWhileStatement node) {
- DartStatement body = node.getBody();
- ensureBlock(node, node.getCloseParenOffset() + 1, body);
- return super.visitWhileStatement(node);
+ @Override
+ public Void visitIfStatement(DartIfStatement node) {
+ DartStatement thenStatement = node.getThenStatement();
+ DartStatement elseStatement = node.getElseStatement();
+ // single line statement
+ if (!utils.getText(node).contains(eol)) {
+ return null;
}
-
- private void ensureBlock(DartNode node, int closeParenOffset, DartStatement statement) {
- if (statement instanceof DartBlock) {
- return;
- }
- if (statement instanceof DartIfStatement) {
- return;
- }
+ // ensure block
+ if (!(thenStatement instanceof DartBlock)) {
String prefix = getNodePrefix(node);
- addReplaceEdit(SourceRangeFactory.forStartLength(closeParenOffset, 0), " {");
- addReplaceEdit(SourceRangeFactory.forEndLength(statement, 0), eol + prefix + "}");
+ addReplaceEdit(SourceRangeFactory.forStartLength(node.getCloseParenOffset() + 1, 0), " {");
+ if (elseStatement != null) {
+ int elseOffset = node.getElseTokenOffset();
+ addReplaceEdit(SourceRangeFactory.forStartLength(elseOffset, 0), "} ");
+ } else {
+ addReplaceEdit(SourceRangeFactory.forEndLength(thenStatement, 0), eol + prefix + "}");
+ }
}
- });
- }
- if (Objects.equal(flag, WHEN_NECESSARY)) {
- unitNode.accept(new ASTVisitor<Void>() {
- @Override
- public Void visitForInStatement(DartForInStatement node) {
- ensureSingleStatement(node.getBody(), node.getCloseParenOffset() + ")".length());
- return super.visitForInStatement(node);
+ if (elseStatement != null) {
+ ensureBlock(node, node.getElseTokenOffset() + "else".length(), elseStatement);
}
+ return super.visitIfStatement(node);
+ }
- @Override
- public Void visitForStatement(DartForStatement node) {
- ensureSingleStatement(node.getBody(), node.getCloseParenOffset() + ")".length());
- return super.visitForStatement(node);
- }
-
- @Override
- public Void visitIfStatement(DartIfStatement node) {
- DartStatement thenStatement = node.getThenStatement();
- DartStatement elseStatement = node.getElseStatement();
- // "then" block
- if (thenStatement instanceof DartBlock) {
- DartBlock block = (DartBlock) thenStatement;
- List<DartStatement> thenStatements = block.getStatements();
- if (thenStatements.size() == 1) {
- thenStatement = thenStatements.get(0);
- // remove then block "{"
- addReplaceEdit(SourceRangeFactory.forStartEnd(
- node.getCloseParenOffset() + 1,
- block.getSourceInfo().getOffset() + 1), "");
- // remove then block "}" - to the "else" or to the end of "if"
- SourceRange closeRange;
- if (elseStatement != null) {
- closeRange = SourceRangeFactory.forStartEnd(
- block.getSourceInfo().getEnd() - 1,
- node.getElseTokenOffset());
- } else {
- closeRange = SourceRangeFactory.forEndEnd(thenStatement, block);
- }
- addReplaceEdit(closeRange, "");
- }
- }
- // "else" block
- if (elseStatement instanceof DartBlock) {
- ensureSingleStatement(elseStatement, node.getElseTokenOffset() + "else".length());
- }
- return super.visitIfStatement(node);
+ @Override
+ public Void visitWhileStatement(DartWhileStatement node) {
+ if (!utils.getText(node).contains(eol)) {
+ return null;
}
+ DartStatement body = node.getBody();
+ ensureBlock(node, node.getCloseParenOffset() + 1, body);
+ return super.visitWhileStatement(node);
+ }
- @Override
- public Void visitWhileStatement(DartWhileStatement node) {
- ensureSingleStatement(node.getBody(), node.getCloseParenOffset() + ")".length());
- return super.visitWhileStatement(node);
+ private void ensureBlock(DartNode node, int closeParenOffset, DartStatement statement) {
+ if (statement instanceof DartBlock) {
+ return;
}
-
- private void ensureSingleStatement(DartStatement statement, int removeStart) {
- if (statement instanceof DartBlock) {
- DartBlock block = (DartBlock) statement;
- List<DartStatement> statements = block.getStatements();
- if (statements.size() == 1) {
- statement = statements.get(0);
- // remove "{"
- int removeEnd = block.getSourceInfo().getOffset() + 1;
- addReplaceEdit(SourceRangeFactory.forStartEnd(removeStart, removeEnd), "");
- // remove "}"
- addReplaceEdit(SourceRangeFactory.forEndEnd(statement, block), "");
- }
- }
+ if (statement instanceof DartIfStatement) {
+ return;
}
- });
- }
+ String prefix = getNodePrefix(node);
+ addReplaceEdit(SourceRangeFactory.forStartLength(closeParenOffset, 0), " {");
+ addReplaceEdit(SourceRangeFactory.forEndLength(statement, 0), eol + prefix + "}");
+ }
+ });
}
private String getNodePrefix(DartNode node) {

Powered by Google App Engine
This is Rietveld 408576698