in src/java/org/jetbrains/plugins/clojure/formatter/ClojureBlockGenerator.java [35:64]
public List<Block> generateSubBlocks(ASTNode node, Wrap wrap, CodeStyleSettings settings, ClojureBlock block) {
myNode = node;
myWrap = wrap;
mySettings = settings;
myBlock = block;
PsiElement blockPsi = myBlock.getNode().getPsi();
final ArrayList<Block> subBlocks = new ArrayList<Block>();
ASTNode children[] = myNode.getChildren(null);
ASTNode prevChildNode = null;
final ClojureCodeStyleSettings clSettings = block.getSettings().getCustomSettings(ClojureCodeStyleSettings.class);
for (ASTNode childNode : children) {
if (canBeCorrectBlock(childNode)) {
final PsiElement childPsi = childNode.getPsi();
final boolean mustAlign = mustAlign(blockPsi, childPsi, clSettings);
final Indent indent = ClojureIndentProcessor.getChildIndent(myBlock, prevChildNode, childNode);
subBlocks.add(new ClojureBlock(childNode,
mustAlign ? block.childAlignment : Alignment.createAlignment(),
indent, myWrap, mySettings));
prevChildNode = childNode;
}
}
return subBlocks;
}