mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
extension for node descriptor names - single place where we apply name adjuster
This commit is contained in:
@@ -23,10 +23,8 @@ import com.intellij.debugger.engine.evaluation.EvaluateException;
|
||||
import com.intellij.debugger.engine.evaluation.EvaluateExceptionUtil;
|
||||
import com.intellij.debugger.engine.evaluation.EvaluationContextImpl;
|
||||
import com.intellij.debugger.impl.PositionUtil;
|
||||
import com.intellij.debugger.settings.NodeRendererSettings;
|
||||
import com.intellij.debugger.ui.tree.FieldDescriptor;
|
||||
import com.intellij.debugger.ui.tree.NodeDescriptor;
|
||||
import com.intellij.debugger.ui.tree.NodeDescriptorNameAdjuster;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
@@ -107,12 +105,7 @@ public class FieldDescriptorImpl extends ValueDescriptorImpl implements FieldDes
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
final String fieldName = myField.name();
|
||||
NodeDescriptorNameAdjuster nameAdjuster = NodeDescriptorNameAdjuster.findFor(this);
|
||||
if (nameAdjuster != null) {
|
||||
return nameAdjuster.fixName(fieldName, this);
|
||||
}
|
||||
return fieldName;
|
||||
return myField.name();
|
||||
}
|
||||
|
||||
public boolean isOuterLocalVariableValue() {
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
public class FieldOuterLocalNameAdjuster extends NodeDescriptorNameAdjuster {
|
||||
|
||||
@Override
|
||||
public boolean shouldApply(@NotNull NodeDescriptor descriptor) {
|
||||
public boolean isApplicable(@NotNull NodeDescriptor descriptor) {
|
||||
if (descriptor instanceof FieldDescriptorImpl && NodeRendererSettings.getInstance().getClassRenderer().SHOW_VAL_FIELDS_AS_LOCAL_VARIABLES) {
|
||||
return ((FieldDescriptorImpl)descriptor).isOuterLocalVariableValue();
|
||||
}
|
||||
|
||||
+1
-7
@@ -25,7 +25,6 @@ import com.intellij.debugger.jdi.LocalVariableProxyImpl;
|
||||
import com.intellij.debugger.jdi.StackFrameProxyImpl;
|
||||
import com.intellij.debugger.ui.tree.LocalVariableDescriptor;
|
||||
import com.intellij.debugger.ui.tree.NodeDescriptor;
|
||||
import com.intellij.debugger.ui.tree.NodeDescriptorNameAdjuster;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiElementFactory;
|
||||
@@ -93,12 +92,7 @@ public class LocalVariableDescriptorImpl extends ValueDescriptorImpl implements
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
String varName = myLocalVariable.name();
|
||||
NodeDescriptorNameAdjuster nameAdjuster = NodeDescriptorNameAdjuster.findFor(this);
|
||||
if (nameAdjuster != null) {
|
||||
return nameAdjuster.fixName(varName, this);
|
||||
}
|
||||
return varName;
|
||||
return myLocalVariable.name();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -27,6 +27,7 @@ import com.intellij.debugger.jdi.VirtualMachineProxyImpl;
|
||||
import com.intellij.debugger.settings.NodeRendererSettings;
|
||||
import com.intellij.debugger.ui.tree.DebuggerTreeNode;
|
||||
import com.intellij.debugger.ui.tree.NodeDescriptor;
|
||||
import com.intellij.debugger.ui.tree.NodeDescriptorNameAdjuster;
|
||||
import com.intellij.debugger.ui.tree.ValueDescriptor;
|
||||
import com.intellij.debugger.ui.tree.render.*;
|
||||
import com.intellij.debugger.ui.tree.render.Renderer;
|
||||
@@ -378,7 +379,12 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements
|
||||
}
|
||||
|
||||
public String calcValueName() {
|
||||
return getName();
|
||||
String name = getName();
|
||||
NodeDescriptorNameAdjuster nameAdjuster = NodeDescriptorNameAdjuster.findFor(this);
|
||||
if (nameAdjuster != null) {
|
||||
return nameAdjuster.fixName(name, this);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
+2
-2
@@ -24,13 +24,13 @@ import org.jetbrains.annotations.NotNull;
|
||||
public abstract class NodeDescriptorNameAdjuster {
|
||||
public static ExtensionPointName<NodeDescriptorNameAdjuster> EP_NAME = ExtensionPointName.create("com.intellij.debugger.nodeNameAdjuster");
|
||||
|
||||
public abstract boolean shouldApply(@NotNull NodeDescriptor descriptor);
|
||||
public abstract boolean isApplicable(@NotNull NodeDescriptor descriptor);
|
||||
|
||||
public abstract String fixName(String name, @NotNull NodeDescriptor descriptor);
|
||||
|
||||
public static NodeDescriptorNameAdjuster findFor(@NotNull NodeDescriptor descriptor) {
|
||||
for (NodeDescriptorNameAdjuster adjuster:EP_NAME.getExtensions()) {
|
||||
if (adjuster.shouldApply(descriptor)) return adjuster;
|
||||
if (adjuster.isApplicable(descriptor)) return adjuster;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user