in CFML/src/com/intellij/coldFusion/model/formatter/CfmlWrappingProcessor.java [23:134]
Wrap createChildWrap(ASTNode child, Wrap defaultWrap, Wrap childWrap) {
IElementType childType = child.getElementType();
IElementType parentType = myNode.getElementType();
if (childType == CfscriptTokenTypes.COMMA || childType == CfscriptTokenTypes.SEMICOLON) return defaultWrap;
//
// Function definition/call
//
if (parentType == CfmlElementTypes.PARAMETERS_LIST || parentType == CfmlElementTypes.ARGUMENT_LIST) {
ASTNode superParent = myNode.getTreeParent();
if (superParent != null) {
if ((superParent.getElementType() == CfmlElementTypes.FUNCTION_CALL_EXPRESSION) &&
mySettings.CALL_PARAMETERS_WRAP != CommonCodeStyleSettings.DO_NOT_WRAP) {
if (myNode.getFirstChildNode() == child) {
if (mySettings.CALL_PARAMETERS_LPAREN_ON_NEXT_LINE) {
return Wrap.createWrap(WrapType.NORMAL, true);
}
else {
return Wrap.createWrap(WrapType.NONE, true);
}
}
if (!mySettings.PREFER_PARAMETERS_WRAP && childWrap != null) {
return Wrap.createChildWrap(childWrap, WrappingUtil.getWrapType(mySettings.CALL_PARAMETERS_WRAP), true);
}
return Wrap.createWrap(WrappingUtil.getWrapType(mySettings.CALL_PARAMETERS_WRAP), true);
}
if ((superParent.getElementType() == CfmlElementTypes.FUNCTION_DEFINITION) &&
mySettings.METHOD_PARAMETERS_WRAP != CommonCodeStyleSettings.DO_NOT_WRAP) {
if (myNode.getFirstChildNode() == child) {
if (mySettings.METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE) {
return Wrap.createWrap(WrapType.NORMAL, true);
}
else {
return Wrap.createWrap(WrapType.NONE, true);
}
}
return Wrap.createWrap(WrappingUtil.getWrapType(mySettings.METHOD_PARAMETERS_WRAP), true);
}
}
}
if (parentType == CfmlElementTypes.FUNCTION_CALL_EXPRESSION) {
if (mySettings.CALL_PARAMETERS_WRAP != CommonCodeStyleSettings.DO_NOT_WRAP) {
if (childType == CfscriptTokenTypes.R_BRACKET) {
return Wrap.createWrap(mySettings.CALL_PARAMETERS_RPAREN_ON_NEXT_LINE ? WrapType.NORMAL : WrapType.NONE, true);
}
}
}
//
// For
//
if ((parentType == CfmlElementTypes.FOREXPRESSION) &&
mySettings.FOR_STATEMENT_WRAP != CommonCodeStyleSettings.DO_NOT_WRAP) {
return createChildWrap(child, mySettings.FOR_STATEMENT_WRAP, mySettings.FOR_STATEMENT_LPAREN_ON_NEXT_LINE,
mySettings.FOR_STATEMENT_RPAREN_ON_NEXT_LINE);
}
//
// If
//
if (parentType == CfmlElementTypes.IFEXPRESSION && childType == CfscriptTokenTypes.ELSE_KEYWORD) {
return Wrap.createWrap(mySettings.ELSE_ON_NEW_LINE ? WrapType.NORMAL : WrapType.NONE, true);
}
//
//Binary expressions
//
if (mySettings.BINARY_OPERATION_WRAP != CommonCodeStyleSettings.DO_NOT_WRAP && CfmlElementTypes.BINARY_EXPRESSION == parentType) {
if ((mySettings.BINARY_OPERATION_SIGN_ON_NEXT_LINE && CfmlFormatterUtil.isBinaryOperator(childType)) ||
(!mySettings.BINARY_OPERATION_SIGN_ON_NEXT_LINE && isRightOperand(child))) {
return Wrap.createWrap(WrappingUtil.getWrapType(mySettings.BINARY_OPERATION_WRAP), true);
}
}
//
// Assignment
//
if (mySettings.ASSIGNMENT_WRAP != CommonCodeStyleSettings.DO_NOT_WRAP && (parentType == CfmlElementTypes.ASSIGNMENT)) {
if (!CfmlFormatterUtil.isAssignmentOperator(childType)) {
if (FormatterUtil.isPrecededBy(child, CfmlFormatterUtil.ASSIGNMENT_OPERATORS) &&
mySettings.PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE) {
return Wrap.createWrap(WrapType.NONE, true);
}
return Wrap.createWrap(WrappingUtil.getWrapType(mySettings.ASSIGNMENT_WRAP), true);
}
else if (mySettings.PLACE_ASSIGNMENT_SIGN_ON_NEXT_LINE) {
return Wrap.createWrap(WrapType.NORMAL, true);
}
}
//
// Ternary expressions
//
if (parentType == CfmlElementTypes.TERNARY_EXPRESSION) {
if (myNode.getFirstChildNode() != child) {
if (mySettings.TERNARY_OPERATION_SIGNS_ON_NEXT_LINE) {
if (!FormatterUtil.isPrecededBy(child, CfscriptTokenTypes.QUESTION) &&
!FormatterUtil.isPrecededBy(child, CfscriptTokenTypes.DOTDOT)) {
return Wrap.createWrap(WrappingUtil.getWrapType(mySettings.TERNARY_OPERATION_WRAP), true);
}
}
else if (childType != CfscriptTokenTypes.QUESTION && childType != CfscriptTokenTypes.DOTDOT) {
return Wrap.createWrap(WrappingUtil.getWrapType(mySettings.TERNARY_OPERATION_WRAP), true);
}
}
return Wrap.createWrap(WrapType.NONE, true);
}
return defaultWrap;
}