return null;
}
final IElementType elementType = myNode.getElementType();
final IElementType parentType = myNode.getTreeParent() == null ? null : myNode.getTreeParent().getElementType();
final ASTNode node1 = ((AbstractBlock)child1).getNode();
final IElementType type1 = node1.getElementType();
final ASTNode node2 = ((AbstractBlock)child2).getNode();
final IElementType type2 = node2.getElementType();
if (AT == type1) return Spacing.createSpacing(0, 0, 0, false, 0);
if (METADATA == type1) return Spacing.createSpacing(1, 1, 0, true, 0);
if (FUNCTION_DEFINITION.contains(type2)) {
final int lineFeeds = COMMENTS.contains(type1) ? 1 : 2;
return Spacing.createSpacing(0, 0, lineFeeds, false, mySettings.KEEP_BLANK_LINES_IN_CODE);
}
if (DOC_COMMENT_CONTENTS.contains(type2)) {
return Spacing.createSpacing(0, Integer.MAX_VALUE, 0, true, mySettings.KEEP_BLANK_LINES_IN_CODE);
}
if (type2 != SEMICOLON && BLOCKS.contains(elementType)) {
boolean topLevel = elementType == DART_FILE || elementType == EMBEDDED_CONTENT;
int lineFeeds = 1;
if (!COMMENTS.contains(type1) && (elementType == CLASS_MEMBERS || topLevel && DECLARATIONS.contains(type2))) {
if (type1 == SEMICOLON && type2 == VAR_DECLARATION_LIST) {
final ASTNode node1TreePrev = node1.getTreePrev();
if (node1TreePrev == null || node1TreePrev.getElementType() != VAR_DECLARATION_LIST) {
lineFeeds = 2;
}
}
else {
lineFeeds = 2;