From 7001ba59fb5315aaea5130dfbf68c6b89bbd13b0 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Mon, 22 Dec 2014 12:39:34 +0300 Subject: [PATCH] show declared type in custom renderers only if requested in settings --- .../actions/JavaReferringObjectsValue.java | 5 ---- .../watch/ArgumentValueDescriptorImpl.java | 6 +---- .../ui/impl/watch/EvaluationDescriptor.java | 4 ---- .../ui/impl/watch/FieldDescriptorImpl.java | 16 +++---------- .../watch/LocalVariableDescriptorImpl.java | 17 +++----------- .../MethodReturnValueDescriptorImpl.java | 6 +---- .../ui/impl/watch/ThisDescriptorImpl.java | 6 +---- .../ThrownExceptionValueDescriptorImpl.java | 6 +---- .../watch/UserExpressionDescriptorImpl.java | 23 ++++++------------- .../ui/impl/watch/ValueDescriptorImpl.java | 21 ++++++++++++----- 10 files changed, 32 insertions(+), 78 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/JavaReferringObjectsValue.java b/java/debugger/impl/src/com/intellij/debugger/actions/JavaReferringObjectsValue.java index 34959665d0cf..1a64a6cf0bf6 100644 --- a/java/debugger/impl/src/com/intellij/debugger/actions/JavaReferringObjectsValue.java +++ b/java/debugger/impl/src/com/intellij/debugger/actions/JavaReferringObjectsValue.java @@ -99,11 +99,6 @@ public class JavaReferringObjectsValue extends JavaValue { return "Ref"; } - @Override - public String calcValueName() { - return "Ref"; - } - @Override public PsiExpression getDescriptorEvaluation(DebuggerContext context) throws EvaluateException { return null; diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ArgumentValueDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ArgumentValueDescriptorImpl.java index 525abba6613f..a92abe492c45 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ArgumentValueDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ArgumentValueDescriptorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -97,10 +97,6 @@ public class ArgumentValueDescriptorImpl extends ValueDescriptorImpl{ return myName; } - public String calcValueName() { - return getName(); - } - public PsiExpression getDescriptorEvaluation(DebuggerContext context) throws EvaluateException { if (!myParameterNameCalcutated) { return null; diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/EvaluationDescriptor.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/EvaluationDescriptor.java index f26d81292e35..95d0c20ef125 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/EvaluationDescriptor.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/EvaluationDescriptor.java @@ -145,10 +145,6 @@ public abstract class EvaluationDescriptor extends ValueDescriptorImpl{ } } - public String calcValueName() { - return getName(); - } - public PsiExpression getDescriptorEvaluation(DebuggerContext context) throws EvaluateException { PsiElement evaluationCode = getEvaluationCode(context); if(evaluationCode instanceof PsiExpressionCodeFragment) { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java index da88267615d1..5aa8711e5ae5 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java @@ -33,7 +33,6 @@ import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiElementFactory; import com.intellij.psi.PsiExpression; import com.intellij.util.IncorrectOperationException; -import com.intellij.util.StringBuilderSpinAllocator; import com.sun.jdi.Field; import com.sun.jdi.ObjectCollectedException; import com.sun.jdi.ObjectReference; @@ -125,19 +124,10 @@ public class FieldDescriptorImpl extends ValueDescriptorImpl implements FieldDes @Override public String calcValueName() { - final ClassRenderer classRenderer = NodeRendererSettings.getInstance().getClassRenderer(); - StringBuilder buf = StringBuilderSpinAllocator.alloc(); - try { - buf.append(getName()); - if (classRenderer.SHOW_DECLARED_TYPE) { - buf.append(": "); - buf.append(classRenderer.renderTypeName(myField.typeName())); - } - return buf.toString(); - } - finally { - StringBuilderSpinAllocator.dispose(buf); + if (NodeRendererSettings.getInstance().getClassRenderer().SHOW_DECLARED_TYPE) { + return addDeclaredType(myField.typeName()); } + return super.calcValueName(); } @Override diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/LocalVariableDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/LocalVariableDescriptorImpl.java index cf4c8864d8f2..21e4aa7395ea 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/LocalVariableDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/LocalVariableDescriptorImpl.java @@ -26,13 +26,11 @@ import com.intellij.debugger.jdi.StackFrameProxyImpl; import com.intellij.debugger.settings.NodeRendererSettings; import com.intellij.debugger.ui.tree.LocalVariableDescriptor; import com.intellij.debugger.ui.tree.NodeDescriptor; -import com.intellij.debugger.ui.tree.render.ClassRenderer; import com.intellij.openapi.project.Project; import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiElementFactory; import com.intellij.psi.PsiExpression; import com.intellij.util.IncorrectOperationException; -import com.intellij.util.StringBuilderSpinAllocator; import com.sun.jdi.Value; import org.jetbrains.annotations.NotNull; @@ -99,19 +97,10 @@ public class LocalVariableDescriptorImpl extends ValueDescriptorImpl implements @Override public String calcValueName() { - final ClassRenderer classRenderer = NodeRendererSettings.getInstance().getClassRenderer(); - StringBuilder buf = StringBuilderSpinAllocator.alloc(); - try { - buf.append(getName()); - if (classRenderer.SHOW_DECLARED_TYPE) { - buf.append(": "); - buf.append(classRenderer.renderTypeName(myTypeName)); - } - return buf.toString(); - } - finally { - StringBuilderSpinAllocator.dispose(buf); + if (NodeRendererSettings.getInstance().getClassRenderer().SHOW_DECLARED_TYPE) { + return addDeclaredType(myTypeName); } + return super.calcValueName(); } @Override diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/MethodReturnValueDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/MethodReturnValueDescriptorImpl.java index 2ab0b0256485..5ac7dcd5d4a6 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/MethodReturnValueDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/MethodReturnValueDescriptorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,10 +49,6 @@ public class MethodReturnValueDescriptorImpl extends ValueDescriptorImpl{ return myMethod.toString(); } - public String calcValueName() { - return getName(); - } - public Type getType() { if (myValue == null) { try { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThisDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThisDescriptorImpl.java index 67e8304ff5bf..52d824b46200 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThisDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThisDescriptorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,10 +45,6 @@ public class ThisDescriptorImpl extends ValueDescriptorImpl{ return "this"; } - public String calcValueName() { - return getName(); - } - public PsiExpression getDescriptorEvaluation(DebuggerContext context) throws EvaluateException { PsiElementFactory elementFactory = JavaPsiFacade.getInstance(context.getProject()).getElementFactory(); try { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThrownExceptionValueDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThrownExceptionValueDescriptorImpl.java index 1cb48edbbc4c..1cf33c672f91 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThrownExceptionValueDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ThrownExceptionValueDescriptorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,10 +57,6 @@ public class ThrownExceptionValueDescriptorImpl extends ValueDescriptorImpl{ return myExceptionObj.referenceType(); } - public String calcValueName() { - return getName(); - } - public PsiExpression getDescriptorEvaluation(DebuggerContext context) throws EvaluateException { throw new EvaluateException("Evaluation not supported for thrown exception object"); } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/UserExpressionDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/UserExpressionDescriptorImpl.java index 35e73c2b6378..574ab19839a5 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/UserExpressionDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/UserExpressionDescriptorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,11 +29,9 @@ import com.intellij.debugger.engine.evaluation.EvaluationContextImpl; import com.intellij.debugger.engine.evaluation.TextWithImports; import com.intellij.debugger.settings.NodeRendererSettings; import com.intellij.debugger.ui.tree.UserExpressionDescriptor; -import com.intellij.debugger.ui.tree.render.ClassRenderer; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiCodeFragment; -import com.intellij.util.StringBuilderSpinAllocator; import com.sun.jdi.ObjectReference; import com.sun.jdi.Value; @@ -53,22 +51,15 @@ public class UserExpressionDescriptorImpl extends EvaluationDescriptor implement return myName; } + @Override public String calcValueName() { - StringBuilder buffer = StringBuilderSpinAllocator.alloc(); - try { - buffer.append(getName()); - buffer.append(": "); - final Value value = getValue(); - if(value != null) { - final ClassRenderer classRenderer = NodeRendererSettings.getInstance().getClassRenderer(); - buffer.append(classRenderer.renderTypeName(value.type().name())); + if (NodeRendererSettings.getInstance().getClassRenderer().SHOW_DECLARED_TYPE) { + Value value = getValue(); + if (value != null) { + return addDeclaredType(value.type().name()); } - - return buffer.toString(); - } - finally { - StringBuilderSpinAllocator.dispose(buffer); } + return super.calcValueName(); } protected PsiCodeFragment getEvaluationCode(final StackFrameContext context) throws EvaluateException { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java index e881787357ae..7013598d3797 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java @@ -335,11 +335,6 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements return myValue; } - @Override - public String calcValueName() { - return null; - } - @Override public PsiExpression getDescriptorEvaluation(DebuggerContext context) throws EvaluateException { return null; @@ -375,7 +370,9 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements return myValueIcon; } - public abstract String calcValueName(); + public String calcValueName() { + return getName(); + }; @Override public void displayAs(NodeDescriptor descriptor) { @@ -583,4 +580,16 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements public Project getProject() { return myProject; } + + protected String addDeclaredType(String typeName) { + final ClassRenderer classRenderer = NodeRendererSettings.getInstance().getClassRenderer(); + StringBuilder buf = StringBuilderSpinAllocator.alloc(); + try { + buf.append(getName()).append(": ").append(classRenderer.renderTypeName(typeName)); + return buf.toString(); + } + finally { + StringBuilderSpinAllocator.dispose(buf); + } + } }