mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Use formatter settings for multi-catch type element
This commit is contained in:
@@ -68,8 +68,10 @@ public class JavaSpacePropertyProcessor extends JavaElementVisitor {
|
||||
init(child);
|
||||
mySettings = settings;
|
||||
|
||||
if (myChild1.getPsi().getLanguage() != StdLanguages.JAVA ||
|
||||
myChild2.getPsi().getLanguage() != StdLanguages.JAVA) {
|
||||
final PsiElement myChild1Psi1 = myChild1.getPsi();
|
||||
final PsiElement myChild1Psi2 = myChild2.getPsi();
|
||||
if (myChild1Psi1 == null || myChild1Psi1.getLanguage() != StdLanguages.JAVA ||
|
||||
myChild1Psi2 == null || myChild1Psi2.getLanguage() != StdLanguages.JAVA) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -492,8 +494,8 @@ public class JavaSpacePropertyProcessor extends JavaElementVisitor {
|
||||
ElementType.IMPORT_STATEMENT_BASE_BIT_SET.contains(myChild2.getElementType())) {
|
||||
if (myImportHelper == null) myImportHelper = new ImportHelper(mySettings);
|
||||
int emptyLines = myImportHelper.getEmptyLinesBetween(
|
||||
(PsiImportStatementBase)SourceTreeToPsiMap.treeElementToPsi(myChild1),
|
||||
(PsiImportStatementBase)SourceTreeToPsiMap.treeElementToPsi(myChild2)
|
||||
SourceTreeToPsiMap.<PsiImportStatementBase>treeToPsiNotNull(myChild1),
|
||||
SourceTreeToPsiMap.<PsiImportStatementBase>treeToPsiNotNull(myChild2)
|
||||
) + 1;
|
||||
myResult = Spacing.createSpacing(0, 0, emptyLines,
|
||||
mySettings.KEEP_LINE_BREAKS,
|
||||
@@ -1339,6 +1341,9 @@ public class JavaSpacePropertyProcessor extends JavaElementVisitor {
|
||||
else if (myChild2.getElementType() == JavaTokenType.LBRACKET || myChild2.getElementType() == JavaTokenType.RBRACKET) {
|
||||
createSpaceInCode(false);
|
||||
}
|
||||
else if (type.getType() instanceof PsiDisjunctionType) {
|
||||
createSpaceInCode(mySettings.SPACE_AROUND_BITWISE_OPERATORS);
|
||||
}
|
||||
else {
|
||||
createSpaceInCode(true);
|
||||
}
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
*/
|
||||
package com.intellij.psi.formatter.java;
|
||||
|
||||
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
|
||||
/**
|
||||
* Is intended to hold specific java formatting tests for 'spacing' settings.
|
||||
*
|
||||
@@ -285,4 +288,18 @@ public class JavaFormatterSpaceTest extends AbstractJavaFormatterTest {
|
||||
"for (; ; )"
|
||||
);
|
||||
}
|
||||
|
||||
public void testSpacesInDisjunctiveType() throws Exception {
|
||||
LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(LanguageLevel.JDK_1_7);
|
||||
getSettings().KEEP_SIMPLE_BLOCKS_IN_ONE_LINE = true;
|
||||
getSettings().CATCH_ON_NEW_LINE = false;
|
||||
|
||||
getSettings().SPACE_AROUND_BITWISE_OPERATORS = true;
|
||||
doMethodTest("try { } catch (E1|E2 e) { }",
|
||||
"try { } catch (E1 | E2 e) { }");
|
||||
|
||||
getSettings().SPACE_AROUND_BITWISE_OPERATORS = false;
|
||||
doMethodTest("try { } catch (E1 | E2 e) { }",
|
||||
"try { } catch (E1|E2 e) { }");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user