mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Java: Support more variants with switch expressions in '.switch' template (IDEA-204010)
This commit is contained in:
+12
-1
@@ -140,7 +140,10 @@ public class SwitchStatementPostfixTemplate extends SurroundPostfixTemplateBase
|
||||
if (parent instanceof PsiExpressionStatement) {
|
||||
result.add(element);
|
||||
}
|
||||
else if (isEnhancedSwitchAvailable && (isVariableInitializer(element, parent) || isRightSideOfAssignment(element, parent))) {
|
||||
else if (isEnhancedSwitchAvailable && (isVariableInitializer(element, parent) ||
|
||||
isRightSideOfAssignment(element, parent) ||
|
||||
isReturnValue(element, parent) ||
|
||||
isArgumentList(parent))) {
|
||||
result.add(element);
|
||||
}
|
||||
}
|
||||
@@ -165,6 +168,14 @@ public class SwitchStatementPostfixTemplate extends SurroundPostfixTemplateBase
|
||||
private boolean isRightSideOfAssignment(PsiElement element, PsiElement parent) {
|
||||
return parent instanceof PsiAssignmentExpression && ((PsiAssignmentExpression)parent).getRExpression() == element;
|
||||
}
|
||||
|
||||
private boolean isReturnValue(PsiElement element, PsiElement parent) {
|
||||
return parent instanceof PsiReturnStatement && ((PsiReturnStatement)parent).getReturnValue() == element;
|
||||
}
|
||||
|
||||
private boolean isArgumentList(PsiElement parent) {
|
||||
return parent instanceof PsiExpressionList && parent.getParent() instanceof PsiCall;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class Foo {
|
||||
void f(char x) {
|
||||
System.out.println(x.switch<caret>);
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
public class Foo {
|
||||
void f(char x) {
|
||||
System.out.println(switch (x) {
|
||||
<caret>
|
||||
});
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class Foo {
|
||||
String f(char x) {
|
||||
return x.switch<caret>
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
public class Foo {
|
||||
String f(char x) {
|
||||
return switch (x) {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class Foo {
|
||||
void f(short x) {
|
||||
System.out.println(1 + x.switch<caret>);
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
public class Foo {
|
||||
void f(short x) {
|
||||
System.out.println(switch (1 + x) {
|
||||
<caret>
|
||||
});
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class Foo {
|
||||
String f(short x) {
|
||||
return 1 + x.switch<caret>
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
public class Foo {
|
||||
String f(short x) {
|
||||
return switch (1 + x) {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
}
|
||||
+16
@@ -33,6 +33,22 @@ public class SwitchExpressionPostfixTemplateTest extends PostfixTemplateTestCase
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testCharExprReturn() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testCharExprArg() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testShortExprReturn() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testShortExprArg() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testEnumExprInit() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user