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
String label = CorrectionMessages.getString("AdvancedQuickAssistProcessor.addParethesis.description"); 
		Image image = JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);
		ASTRewriteCorrectionProposal proposal = new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(),
				rewrite, 1, image);
		resultingCollections.add(proposal);
		return true;
	}
	private static ArrayList getFullyCoveredNodes(IInvocationContext context) {
		final ArrayList coveredNodes = new ArrayList();
		final int selectionBegin = context.getSelectionOffset();
		final int selectionEnd = selectionBegin + context.getSelectionLength();
		context.getASTRoot().accept(new ASTVisitor() {
			public void postVisit(ASTNode node) {
				if (isCovered(node)) {
					ASTNode parent= node.getParent();
					if (parent != null && !isCovered(parent)) {
						coveredNodes.add(node);
					}
				}
			}
			private boolean isCovered(ASTNode node) {
				int begin = node.getStartPosition();
				int end = begin + node.getLength();
				return (begin >= selectionBegin) && (end <= selectionEnd);
			}
		});
		return coveredNodes;
	}
	private boolean getJoinAndIfStatementsProposals(IInvocationContext context, ASTNode node, Collection resultingCollections) {
		Operator andOperator = InfixExpression.Operator.CONDITIONAL_AND;