render long expressions (IDEA-68031)

This commit is contained in:
anna
2011-04-14 21:12:02 +02:00
parent 0a259250b0
commit e3bea1a2c8
3 changed files with 20 additions and 3 deletions
@@ -32,6 +32,7 @@ import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiExpressionTrimRenderer;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.PsiUtilBase;
@@ -113,7 +114,7 @@ public class AccessStaticViaInstanceFix implements LocalQuickFix {
qualifiedWithClassName.setQualifierExpression(factory.createReferenceExpression(containingClass));
final boolean canCopeWithSideEffects = hasSideEffects;
final SideEffectWarningDialog dialog =
new SideEffectWarningDialog(project, false, null, sideEffects.get(0).getText(), qualifierExpression.getText(),
new SideEffectWarningDialog(project, false, null, sideEffects.get(0).getText(), PsiExpressionTrimRenderer.render(qualifierExpression),
canCopeWithSideEffects){
@Override
protected String sideEffectsDescription() {
@@ -28,6 +28,7 @@ import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.util.InheritanceUtil;
import com.intellij.psi.util.PsiExpressionTrimRenderer;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.PsiUtilBase;
import com.intellij.refactoring.psi.PropertyUtils;
@@ -149,7 +150,18 @@ public class RemoveUnusedVariableFix implements IntentionAction {
PsiVariable variable,
Editor editor,
boolean canCopeWithSideEffects) {
String text = sideEffects.isEmpty() ? "" : sideEffects.get(0).getText();
String text;
if (sideEffects.isEmpty()) {
text = "";
}
else {
final PsiElement sideEffect = sideEffects.get(0);
if (sideEffect instanceof PsiExpression) {
text = PsiExpressionTrimRenderer.render((PsiExpression)sideEffect);
} else {
text = sideEffect.getText();
}
}
return showSideEffectsWarning(sideEffects, variable, editor, canCopeWithSideEffects, text, text);
}
@@ -35,6 +35,7 @@ import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.controlFlow.DefUseUtil;
import com.intellij.psi.util.PsiExpressionTrimRenderer;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
import gnu.trove.THashSet;
@@ -243,7 +244,10 @@ public class DefUseInspection extends BaseLocalInspectionTool {
int res = SideEffectWarningDialog.DELETE_ALL;
if (hasSideEffects) {
hasSideEffects = PsiUtil.isStatement(psiInitializer);
res = RemoveUnusedVariableFix.showSideEffectsWarning(sideEffects, variable, FileEditorManager.getInstance(project).getSelectedTextEditor(), hasSideEffects, sideEffects.get(0).getText(), variable.getTypeElement().getText() + " " + variable.getName() + ";<br>" + psiInitializer.getText());
res = RemoveUnusedVariableFix.showSideEffectsWarning(sideEffects, variable,
FileEditorManager.getInstance(project).getSelectedTextEditor(),
hasSideEffects, sideEffects.get(0).getText(),
variable.getTypeElement().getText() + " " + variable.getName() + ";<br>" + PsiExpressionTrimRenderer.render((PsiExpression)psiInitializer));
}
try {
if (res == SideEffectWarningDialog.DELETE_ALL) {