show lambda text in hierarchy tree

This commit is contained in:
Dmitry Batkovich
2016-10-27 15:50:00 +03:00
parent 20b655d16a
commit 085dbbf603
3 changed files with 14 additions and 22 deletions
@@ -19,13 +19,12 @@ import com.intellij.psi.NavigatablePsiElement;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFunctionalExpression;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.presentation.java.ClassPresentationUtil;
import com.intellij.psi.util.PsiFormatUtil;
import com.intellij.psi.util.PsiFormatUtilBase;
import javax.swing.*;
import static com.intellij.ide.util.PsiClassOrFunctionalExpressionListCellRenderer.renderFunctionalExpression;
public class MethodOrFunctionalExpressionCellRenderer extends PsiElementListCellRenderer<NavigatablePsiElement> {
private final MethodCellRenderer myMethodCellRenderer;
@@ -37,8 +36,8 @@ public class MethodOrFunctionalExpressionCellRenderer extends PsiElementListCell
}
public String getElementText(NavigatablePsiElement element) {
return element instanceof PsiMethod ? myMethodCellRenderer.getElementText((PsiMethod)element)
: renderFunctionalExpression((PsiFunctionalExpression)element);
return element instanceof PsiMethod ? myMethodCellRenderer.getElementText((PsiMethod)element)
: ClassPresentationUtil.getFunctionalExpressionPresentation((PsiFunctionalExpression)element, false);
}
protected Icon getIcon(PsiElement element) {
@@ -15,22 +15,16 @@
*/
package com.intellij.ide.util;
import com.intellij.extapi.psi.StubBasedPsiElementBase;
import com.intellij.psi.NavigatablePsiElement;
import com.intellij.psi.PsiBundle;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiFunctionalExpression;
import com.intellij.psi.impl.java.stubs.FunctionalExpressionStub;
import com.intellij.psi.presentation.java.ClassPresentationUtil;
import com.intellij.psi.stubs.StubElement;
import com.intellij.psi.util.PsiExpressionTrimRenderer;
import org.jetbrains.annotations.NotNull;
public class PsiClassOrFunctionalExpressionListCellRenderer extends PsiElementListCellRenderer<NavigatablePsiElement> {
@Override
public String getElementText(NavigatablePsiElement element) {
return element instanceof PsiClass ? ClassPresentationUtil.getNameForClass((PsiClass)element, false)
: renderFunctionalExpression((PsiFunctionalExpression)element);
return element instanceof PsiClass ? ClassPresentationUtil.getNameForClass((PsiClass)element, false)
: ClassPresentationUtil.getFunctionalExpressionPresentation((PsiFunctionalExpression)element, false);
}
@Override
@@ -42,13 +36,4 @@ public class PsiClassOrFunctionalExpressionListCellRenderer extends PsiElementLi
protected int getIconFlags() {
return 0;
}
@NotNull
static String renderFunctionalExpression(@NotNull PsiFunctionalExpression expression) {
final StubElement stub = ((StubBasedPsiElementBase<?>)expression).getGreenStub();
final String lambdaText = stub instanceof FunctionalExpressionStub
? ((FunctionalExpressionStub)stub).getPresentableText()
: PsiExpressionTrimRenderer.render(expression);
return PsiBundle.message("class.context.display", lambdaText, ClassPresentationUtil.getContextName(expression, false));
}
}