/** * Creates {@link Wrap wrap} to be used with the children blocks of the the given block. * * @param block target block which sub-blocks should use wrap created by the current method * @param settings code formatting settings to consider during wrap construction * @param reservedWrapsProvider reserved {@code 'element type -> wrap instance'} mappings provider. <b>Note:</b> this * argument is considered to be a part of legacy heritage and is intended to be removed as * soon as formatting code refactoring is done * @return wrap to use for the sub-blocks of the given block */ @Nullable public Wrap create(ASTBlock block, CommonCodeStyleSettings settings, ReservedWrapsProvider reservedWrapsProvider) { ASTNode node = block.getNode(); Wrap wrap = block.getWrap(); final IElementType nodeType = node.getElementType(); if (nodeType == JavaElementType.EXTENDS_LIST || nodeType == JavaElementType.IMPLEMENTS_LIST) { return Wrap.createWrap(settings.EXTENDS_LIST_WRAP, false); } else if (node instanceof PsiPolyadicExpression) { Wrap actualWrap = wrap != null ? wrap : reservedWrapsProvider.getReservedWrap(JavaElementType.BINARY_EXPRESSION); if (actualWrap == null) { return Wrap.createWrap(settings.BINARY_OPERATION_WRAP, false); } else { if (JavaFormatterUtil.areSamePriorityBinaryExpressions(node, node.getTreeParent())) { return actualWrap; } else { return Wrap.createChildWrap(actualWrap, WrapType.byLegacyRepresentation(settings.BINARY_OPERATION_WRAP), false); } } } else if (nodeType == JavaElementType.CONDITIONAL_EXPRESSION) { return Wrap.createWrap(settings.TERNARY_OPERATION_WRAP, false); } else if (nodeType == JavaElementType.ASSERT_STATEMENT) { return Wrap.createWrap(settings.ASSERT_STATEMENT_WRAP, false); } else if (nodeType == JavaElementType.FOR_STATEMENT) { return Wrap.createWrap(settings.FOR_STATEMENT_WRAP, false); } else if (nodeType == JavaElementType.THROWS_LIST) { return Wrap.createWrap(settings.THROWS_LIST_WRAP, true); } else if (nodeType == JavaElementType.CODE_BLOCK) { if (settings.KEEP_SIMPLE_METHODS_IN_ONE_LINE && node.getPsi().getParent() instanceof PsiMethod && !node.textContains('\n')) { return null; } return Wrap.createWrap(WrapType.NORMAL, false); } else if (JavaFormatterUtil.isAssignment(node)) { return Wrap.createWrap(settings.ASSIGNMENT_WRAP, true); } else { return null; } }
/** * Creates {@link Wrap wrap} to be used with the children blocks of the the given block. * * @param block target block which sub-blocks should use wrap created by the current method * @param settings code formatting settings to consider during wrap construction * @param reservedWrapsProvider reserved {@code 'element type -> wrap instance'} mappings provider. <b>Note:</b> this * argument is considered to be a part of legacy heritage and is intended to be removed as * soon as formatting code refactoring is done * @return wrap to use for the sub-blocks of the given block */ @Nullable public Wrap create(ASTBlock block, CommonCodeStyleSettings settings, ReservedWrapsProvider reservedWrapsProvider) { ASTNode node = block.getNode(); Wrap wrap = block.getWrap(); final IElementType nodeType = node.getElementType(); if (nodeType == JavaElementType.EXTENDS_LIST || nodeType == JavaElementType.IMPLEMENTS_LIST) { return Wrap.createWrap(settings.EXTENDS_LIST_WRAP, false); } else if (node instanceof PsiPolyadicExpression) { Wrap actualWrap = wrap != null ? wrap : reservedWrapsProvider.getReservedWrap(JavaElementType.BINARY_EXPRESSION); if (actualWrap == null) { return Wrap.createWrap(settings.BINARY_OPERATION_WRAP, false); } else { if (JavaFormatterUtil.areSamePriorityBinaryExpressions(node, node.getTreeParent())) { return actualWrap; } else { return Wrap.createChildWrap(actualWrap, WrapType.byLegacyRepresentation(settings.BINARY_OPERATION_WRAP), false); } } } else if (nodeType == JavaElementType.CONDITIONAL_EXPRESSION) { return Wrap.createWrap(settings.TERNARY_OPERATION_WRAP, false); } else if (nodeType == JavaElementType.ASSERT_STATEMENT) { return Wrap.createWrap(settings.ASSERT_STATEMENT_WRAP, false); } else if (nodeType == JavaElementType.FOR_STATEMENT) { return Wrap.createWrap(settings.FOR_STATEMENT_WRAP, false); } else if (nodeType == JavaElementType.THROWS_LIST) { return Wrap.createWrap(settings.THROWS_LIST_WRAP, true); } else if (nodeType == JavaElementType.CODE_BLOCK) { return Wrap.createWrap(Wrap.NORMAL, false); } else if (JavaFormatterUtil.isAssignment(node)) { return Wrap.createWrap(settings.ASSIGNMENT_WRAP, true); } else { return null; } }
/** * Creates {@link Wrap wrap} to be used with the children blocks of the the given block. * * @param block target block which sub-blocks should use wrap created by the current method * @param settings code formatting settings to consider during wrap construction * @param reservedWrapsProvider reserved {@code 'element type -> wrap instance'} mappings provider. <b>Note:</b> this * argument is considered to be a part of legacy heritage and is intended to be removed as * soon as formatting code refactoring is done * @return wrap to use for the sub-blocks of the given block */ @Nullable public Wrap create(ASTBlock block, CommonCodeStyleSettings settings, ReservedWrapsProvider reservedWrapsProvider) { ASTNode node = block.getNode(); Wrap wrap = block.getWrap(); final IElementType nodeType = node.getElementType(); if(nodeType == JavaElementType.EXTENDS_LIST || nodeType == JavaElementType.IMPLEMENTS_LIST) { return Wrap.createWrap(settings.EXTENDS_LIST_WRAP, false); } else if(node instanceof PsiPolyadicExpression) { Wrap actualWrap = wrap != null ? wrap : reservedWrapsProvider.getReservedWrap(JavaElementType.BINARY_EXPRESSION); if(actualWrap == null) { return Wrap.createWrap(settings.BINARY_OPERATION_WRAP, false); } else { if(JavaFormatterUtil.areSamePriorityBinaryExpressions(node, node.getTreeParent())) { return actualWrap; } else { return Wrap.createChildWrap(actualWrap, WrapType.byLegacyRepresentation(settings.BINARY_OPERATION_WRAP), false); } } } else if(nodeType == JavaElementType.CONDITIONAL_EXPRESSION) { return Wrap.createWrap(settings.TERNARY_OPERATION_WRAP, false); } else if(nodeType == JavaElementType.ASSERT_STATEMENT) { return Wrap.createWrap(settings.ASSERT_STATEMENT_WRAP, false); } else if(nodeType == JavaElementType.FOR_STATEMENT) { return Wrap.createWrap(settings.FOR_STATEMENT_WRAP, false); } else if(nodeType == JavaElementType.THROWS_LIST) { return Wrap.createWrap(settings.THROWS_LIST_WRAP, true); } else if(nodeType == JavaElementType.CODE_BLOCK) { if(settings.KEEP_SIMPLE_METHODS_IN_ONE_LINE && node.getPsi().getParent() instanceof PsiMethod && !node.textContains('\n')) { return null; } return Wrap.createWrap(WrapType.NORMAL, false); } else if(JavaFormatterUtil.isAssignment(node)) { return Wrap.createWrap(settings.ASSIGNMENT_WRAP, true); } else { return null; } }