From e1f21c1d5c87153cff582a689374eeaa0f7aa5b5 Mon Sep 17 00:00:00 2001 From: Egor Ushakov Date: Wed, 17 Jan 2018 15:15:34 +0300 Subject: [PATCH] capture agent: use keyExpression as a field --- .../debugger/settings/CaptureSettingsProvider.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/CaptureSettingsProvider.java b/java/debugger/impl/src/com/intellij/debugger/settings/CaptureSettingsProvider.java index e9f2e24c31bd..fd150972e200 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/CaptureSettingsProvider.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/CaptureSettingsProvider.java @@ -7,6 +7,7 @@ import com.intellij.debugger.engine.JVMNameUtil; import com.intellij.debugger.jdi.DecompiledLocalVariable; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.util.registry.Registry; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.util.containers.ContainerUtil; import one.util.streamex.StreamEx; @@ -124,18 +125,19 @@ public class CaptureSettingsProvider { else { return; } + String className = JVMNameUtil.getNonAnonymousClassName(method.getContainingClass()).replaceAll("\\.", "/"); + String methodName = JVMNameUtil.getJVMMethodName(method); + PsiModifierList modifierList = e.getModifierList(); if (modifierList != null) { PsiAnnotation annotation = modifierList.findAnnotation(CaptureConfigurable.getAnnotationName(capture)); if (annotation != null) { PsiAnnotationMemberValue keyExpressionValue = annotation.findAttributeValue("keyExpression"); if (keyExpressionValue != null && !"\"\"".equals(keyExpressionValue.getText())) { - return; //skip for now + keyProvider = new FieldKeyProvider(className, StringUtil.unquoteString(keyExpressionValue.getText())); //treat as a field } } } - String className = JVMNameUtil.getNonAnonymousClassName(method.getContainingClass()).replaceAll("\\.", "/"); - String methodName = JVMNameUtil.getJVMMethodName(method); AgentPoint point = capture ? new AgentCapturePoint(className, methodName, keyProvider) : new AgentInsertPoint(className, methodName, keyProvider); annotationPoints.add(point);