disable surround with () for void expressions (IDEA-175462)

This commit is contained in:
Anna.Kozlova
2017-07-06 12:25:37 +02:00
parent 7ddf8d2753
commit 56ce334d56
3 changed files with 19 additions and 2 deletions
@@ -38,7 +38,7 @@ public class JavaWithCastSurrounder extends JavaExpressionSurrounder {
@Override
public boolean isApplicable(PsiExpression expr) {
return true;
return !PsiType.VOID.equals(expr.getType());
}
@Override
@@ -28,7 +28,7 @@ import com.intellij.util.IncorrectOperationException;
public class JavaWithParenthesesSurrounder extends JavaExpressionSurrounder{
@Override
public boolean isApplicable(PsiExpression expr) {
return true;
return !PsiType.VOID.equals(expr.getType());
}
@Override
@@ -31,7 +31,9 @@ import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.editor.SelectionModel;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiExpression;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.refactoring.introduceVariable.IntroduceVariableBase;
import com.intellij.testFramework.LightCodeInsightTestCase;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
@@ -258,4 +260,19 @@ public class JavaSurroundWithTest extends LightCodeInsightTestCase {
return text != null && text.contains("while");
}));
}
public void testExcludeVoidExpressions() {
configureFromFileText("a.java",
"class Foo {\n" +
" void bar() {\n" +
" <selection>System.out.println();</selection>\n" +
" }\n" +
"}");
SelectionModel model = myEditor.getSelectionModel();
PsiExpression expr =
IntroduceVariableBase.getSelectedExpression(myFile.getProject(), myFile, model.getSelectionStart(), model.getSelectionEnd());
assertNotNull(expr);
assertFalse(new JavaWithParenthesesSurrounder().isApplicable(expr));
assertFalse(new JavaWithCastSurrounder().isApplicable(expr));
}
}