Bug 74580 formatting for condition quick assists
3.1 M2 test pass The formatting of conditionals modified by the new quick assists is misleading. Consider the following: if (c1) { one(); } else if (c2) { two(); } else { three(); } translates into: if (!c1) if (c2) { two(); } else { three(); } else { one(); } which is correct, but it is barely visible from the formatting that the last else clause belongs to the first if statement. I would expect this (with or without the braces): if (!c1) if (c2) { two(); } else { three(); } else { one(); }
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/AdvancedQuickAssistProcessor.java
rewrite.set(ifStatement, IfStatement.EXPRESSION_PROPERTY, rightCondition, null);
		
		IfStatement outerIfStatement = ast.newIfStatement();
		outerIfStatement.setExpression(leftCondition);
		Block outerBlock = ast.newBlock();
		outerIfStatement.setThenStatement(outerBlock);
		ASTNode ifPlaceholder = rewrite.createMoveTarget(ifStatement);
		outerBlock.statements().add(ifPlaceholder);
		
		rewrite.replace(ifStatement, outerIfStatement, null);
		
		String label = CorrectionMessages.getString("AdvancedQuickAssistProcessor.splitAndCondition.description"); 
		Image image = JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
		ASTRewriteCorrectionProposal proposal = new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(),
				rewrite, 1, image);
		resultingCollections.add(proposal);
		return true;
	}
	private boolean getJoinOrIfStatementsProposals(IInvocationContext context, ASTNode covering,
			Collection resultingCollections) {
		Operator orOperator = InfixExpression.Operator.CONDITIONAL_OR;
		ArrayList coveredNodes = getFullyCoveredNodes(context);
		if (coveredNodes.size() < 2)
			return false;
		
		String commonThenSource = null;
		for (Iterator I = coveredNodes.iterator(); I.hasNext();) {
			ASTNode node = (ASTNode) I.next();
			if (!(node instanceof IfStatement))